异步回调返回数组代替对象

时间:2018-06-07 15:58:56

标签: javascript async.js

我正在使用异步节点库来处理一些数据。它有效地连接,有时它返回array首先将2个元素作为undefined返回,而将其他时间作为一个元素返回结果..这是示例代码

let async =  require('async');
class Foo {
    getFoo(req, callback) {
        let self = this;
        async.waterfall( [
            self._foo.bind(self, req),
            self._bar.bind(self),
            self._foobar.bind(self)
        ] , (err, result)=> {
            if (err) return callback(err);
            console.log(result);
            return callback(null, result);
        }); 
     } 
}

我在另一个文件中使用上面的类     让Foo = require('foo');

let req = {};
let seriesProcessArr = [];
let foo =  new Foo();
seriesProcessArr.push(foo.getFoo.bind(foo,req));
async.series( seriesProcessArr , (err, result) => {
           if(err) {
                console.log(err);
            }
            console.log(result);
});

首先result应该有一个对象,代替我得到一个数组。其次有些时候undefined是第一个元素。

1 个答案:

答案 0 :(得分:-1)

result是一个数组,因为您使用async.series来收集结果。

礼貌:@Bergi(请阅读评论)