在.then函数中发送多个参数

时间:2017-04-29 13:28:53

标签: javascript callback ecmascript-6 promise bluebird

在回调中,我们可以发送任意数量的参数。

同样,我想将多个参数传递给then函数,无论是Bluebird promises还是本机JavaScript承诺。

像这样:

myPromise.then(a => {
    var b=122;
    // here I want to return multiple arguments
}).then((a,b,c) => {
    // do something with arguments
});

1 个答案:

答案 0 :(得分:6)

您只需从then方法返回一个对象即可。如果您在下一个then中使用destructuring,就像将多个变量从一个then传递到下一个:

myPromise.then(a => {
    var b = 122;
    return {
        a,
        b,
        c: 'foo'
    };
}).then(({ a, b, c }) => {
    console.log(a);
    console.log(b);
    console.log(c);    
});

请注意,在第一个then中,我们使用快捷方式返回ab(它与使用{ a: a, b: b, c: 'foo' }相同)。< / p>