比如我有一个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库可以简化这个过程。
添加回答
举报
0/150
提交
取消