奇妙的链式调用方法
我们知道带参的函数链式调用是不能这样的形式:pro(x,y).then(pro(x,y));这样调用两个函数同时进行,那么如何简单优美地链式调用呢!重点来了,一般我们是这样写的:
function pro(x,y){
return new Promise((resolve,reject)=>{
setTimeout(() => {
console.log(x);
resolve(x);
}, y*1000);
})
}
直接return一个promise对象,但这样像刚才讲的一样,不能直接把函数放在promise里。
但是我们可以这样写:
function pro(x,y){
return function(){
return new Promise((resolve,reject)=>{
setTimeout(() => {
console.log(x);
resolve(x);
}, y*1000);
})}
}
再试试pro('第一步',3)().then(pro('第二步',3));注意第一个函数后面跟了一个‘()’重点!
这样一个完美的链式调用成功了