Node js甚至在推送数据后也得到空白obj

问题描述 投票:0回答:1

这里我正尝试将数据推入我的数组,但它始终为空。

read_file: ['pass_fileData', function (result, cb) {
    let obj = [];
    async.each(result.pass_fileData, function (item) {
        knex
        .select('xxxxx')
        .from('xxxx')
        .innerJoin('xxxx', 'xxxx', 'xxx')
        .where('xxxxx', '=', item)
        .then(function (data) {
            obj.push(data) // here I am pushing data to array
        })
        .catch(function (err) {
            cb(err);
        })
    })
    cb(null, obj)
}]

CB(null, obj)中,我没有任何数据,但是在控制台时,我是从数据库中获取数据。

javascript node.js knex.js async.js
1个回答
0
投票

因为您的功能是异步的。这意味着当我调用您的回调cb时,数据还不存在。您希望在每个异步函数执行后调用回调。

[async.each可以采用第三个参数,这是在函数完成后将被调用的回调。

您的代码应如下所示:

async.each
© www.soinside.com 2019 - 2024. All rights reserved.