我正在尝试从回调函数中提取变量的值。
我在这里做错了什么?

var storyList = [];
var storyTemp ={};

// get list of all stories
db.getAllStoriesSet(function(err, reply) {
    if (err) throw err;
    else {
        storyList = reply;
        console.log("storylist inner: " + storyList);
    };
});
console.log("storylist outer: " + storyList);


在上面的代码中,我期望内部和外部故事列表的值相同。
但是,外部storyList值仍为空列表。

编辑:添加到问题。
我已经在异步函数外部初始化了一个变量storyList。然后,我将从异步函数中获取答复,并将其放入变量storyList中。我希望从我为自己开掘的缓慢而残酷的死亡的异步陷阱中欺骗自己。
它不应该起作用吗?

最佳答案

如果getAllStoriesSet是异步的,则在执行回调之前,将调用其后的行。所以storyList就像通话前一样。

这就是提供回调的原因:必须在回调中放入需要reply值的代码。

关于javascript - 从回调函数内部获取变量值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14488924/

10-09 21:29