Promise / A + with chain then()回调用例?

时间:2016-03-03 08:33:04

标签: javascript promise es6-promise

我刚刚开始阅读有关Promise / A +的内容,并希望自己尝试一下。 我添加了多个then()回调,这种行为令人惊讶。

1)链接当时不会返回相同的承诺

  > new Promise(function(a, r) {a('hello')}).
      then(function(r) { console.log('1', arguments) }).
      then(function(r) { console.log("2", arguments) })
  1 ["hello"]
  2 [undefined]

2)非链接按预期工作

> p = new Promise(function(a, r) {a('hello')}); 
    p.then(function(r) { console.log('1', arguments) }); 
    p.then(function(r) { console.log("2", arguments) })
1 ["hello"]
2 ["hello"]

方案#1的用例是什么?

1 个答案:

答案 0 :(得分:2)

你应该从承诺中返回价值。



new Promise(function(a, r) {a('hello')}).
      then(function(r) { 
        console.log('1', arguments);
        return r; 
      }).
      then(function(r) { console.log("2", arguments) })




返回值作为参数传递给then函数中的回调。