我正在尝试从回调函数中提取变量的值。
我在这里做错了什么?
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/