无法将价值传递给承诺链

时间:2019-01-23 19:36:39

标签: promise bluebird

在我的代码中,我有...

p.then(() => { console.log('Then 1'); return 'Hi Mum!!'});

...和

p.then(function(val) { console.log('Then 2: ' + val);

解决承诺后输出...

  

然后1   然后2:未定义

我如何访问那么2中的那么1中的退货?

1 个答案:

答案 0 :(得分:2)

这不是,您正在初始承诺中注册第二个延续,而不是先前then调用返回的承诺。它应该看起来像这样:

p.then(() => { console.log('Then 1'); return 'Hi Mum!!'})
 .then(function(val) { console.log('Then 2: ' + val) });

执行此操作的另一种方法是将第一个分配给变量并提供对其的then调用:

const chain = p.then(() => { console.log('Then 1'); return 'Hi Mum!!'})
// ...
chain.then(function(val) { console.log('Then 2: ' + val); });

这使您可以传递承诺链,并且仍然可以传递期望值。