为了账号安全,请及时绑定邮箱和手机立即绑定

怎么写promise的链式调用

怎么写promise的链式调用

慕姐4208626 2019-04-19 16:11:26
比如我有一个A.func1()是异步的,它能返回一个对象x1,我还有一个B.func2()也是异步的,需要根据x1来执行,然后B.func2返回一个最终值值t,根据这个最终值t就进行一些提示性显示。请问这个要怎么写呢?我自己写的代码是这样的A.func1().then(function(x1){B.func2(x1).then(function(t){//dosomething})})但是感觉这样用不用then就一个效果啦……还是变回金字塔了
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

直接在then里面返回一个Promise的对象,如下:
javascriptA.func1()
.then(function(x1){
returnB.func2(x1);
})
.then(function(t){
//dosomething
});
针对你评论中说的问题,如果不使用第三方的Promise库的话,可以像下面这样使用:
javascriptvarpromise=newPromise(function(resolve,reject){
varfirstValue;
A.func1()
.then(function(x1){
firstValue=x1;//临时保存
returnB.func2(x1);
},reject)
.then(function(x2){
resolve({
firstValue:firstValue,
secondValue:x2
});
},reject);
});
promise.then(function(result){
console.log(result);//{"firstValue":"Hello","secondValue":"World"}
});
使用第三方的Promise库可以简化这个过程。
                            
查看完整回答
反对 回复 2019-04-19
  • 2 回答
  • 0 关注
  • 582 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信