原文:http://liubin.org/promises-book/#ch2-promise.then 如果 Task A 想给 Task B 传递一个参数该怎么办呢? 答案非常简单,那就是在 Ta
原文:http://liubin.org/promises-book/#ch2-promise.then
如果 Task A 想给 Task B 传递一个参数该怎么办呢?
答案非常简单,那就是在 Task A 中 return
的返回值,会在 Task B 执行时传给它。
我们还是先来看一个具体例子吧。
function doubleUp(value) { return value * 2;}function increment(value) { return value + 1;}function output(value) { console.log(value);// => (1 + 1) * 2}var promise = Promise.resolve(1);promise .then(increment) .then(doubleUp) .then(output) .catch(function(error){ // promise chain中出现异常的时候会被调用 console.error(error); });
这段代码的入口函数是 Promise.resolve(1);
,整体的promise chain执行流程如下所示。
-
Promise.resolve(1);
传递 1 给increment
函数 -
函数
increment
对接收的参数进行 +1 操作并返回(通过return
) -
这时参数变为2,并再次传给
doubleUp
函数 -
最后在函数
output
中打印结果