node.js Promise链的参数传递
介绍Promise链如何把前一个Promise的返回结果传给后一个Promise作为参数。
基本原则
- Promise链由then()和catch()组成,then()和catch()的返回值也是一个Promise对象这样才能构成一个Promise链;类似:
Promise Promise.then(function callback(param) { });
Promise Promise.catch(function callback(param) {});
- 在Promise链中前一个callback函数返回值,作为后一个Promise的then()函数参数
promise1.then(function callback1(param1) { return value1; })
.then(function callback2(param2) { ... })
函数callback1的返回值value1作为函数callback2的参数param2,也就是 value1 == param2
- 在Promise链中前一个callback函数返回值如果是一个Promise对象,那么不会把这个Promise对象直接传给后一个
Promise的then()函数参数,而是把Promise的resolve()值传给后一个Promise
promise1.then(function callback1(param1) { return new Promise((resolve, reject) => { resolve(value2); }); })
.then(function callback2(param2) { ...})
函数callback1的返回值Promise的resolve对象作为函数callback2的参数param2,也就是 value2 == param2