在回调中,我们可以发送任意数量的参数。
同样,我想将多个参数传递给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
});
答案 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
中,我们使用快捷方式返回a
和b
(它与使用{ a: a, b: b, c: 'foo' }
相同)。< / p>