我正在循环从 couchdb 返回的 JSON 数据数组,并将数据添加到数组中,然后返回该数组,该数组应包含来自 couchdb 的行,但返回 []
。
var Album = {
all: function() {
var data, albums = [];
request({ uri: 'http://127.0.0.1:5984/albums/_all_docs'}, function(error, response, body) {
if (error) throw error;
data = JSON.parse(body);
data.rows.forEach(function(d) {
request({ uri: 'http://127.0.0.1:5984/albums/' + d.id }, function(error, response, body) {
if (error) throw error;
albums.push(JSON.parse(body));
});
});
});
return albums;
}
};
最佳答案
[]
将最初返回,尽管一旦执行回调,数组将包含必要的数据。这就是 Node 回调的本质 - 它们是异步的。
关于javascript - 嵌套回调时为空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5691885/