1

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

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。然后我从异步函数中获取回复并将其放入变量故事列表中。我希望从我显然为自己挖的缓慢而残酷的死亡的异步深坑中作弊。它不应该起作用吗?

4

1 回答 1

5

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

这就是您提供回调的原因:您必须在回调中放入需要reply.

于 2013-01-23T20:39:51.297 回答