javascript - 嵌套回调时为空数组

标签 javascript node.js couchdb

我正在循环从 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/

相关文章:

javascript - Bootstrap 5 : show modal with javascript

javascript - Rails - 下拉菜单图标上的不透明度切换?

javascript - 是否可以在不丢失对象验证的情况下为有条件要求的对象数组编写自定义 Prop 类型验证器?

php - 奇怪的 CSS 加载

scala - 后台作业服务,如何确保每个集群的作业只定期运行一次

arrays - couchdb 映射/减少按日期过滤的多个键

javascript - 如何使用 Mongoose 模式获取数据并将其发送给客户端?

node.js - 错误: Failed to find request token in session for passport-twitter

javascript - Node 要求返回未定义

couchdb - Node.js Koa 应用程序和 CouchDB 在单个容器中