您的位置:>新大话西游2>新版测试>文字列表>

测试内容

上一篇文章中我们简单的介绍了JavaScript的新Promises API,错误处理以及链式Promises的概念。在实际开发中,我们经常需要将Promises进行链式合并来排队处理异步操作。但是,很多时候我们需要跟踪任务完成的顺序来根据上一个任务的结果进行下一个任务。由于异步任务可以以任何书序完成,在进行异步操作时保持队列就成了一个巨大的挑战。本文将具体阐述其中的细节部分。

深入研究链式Promise

我们已经知道了链式Promise要使用到then()方法。现在,我们来深入理解一下调用call()方法后真正发生了什么。考虑下面的代码:

var newPromise = getPromise(someData).then(function(data){//line1     return getPromise(data)//line2 }).then(function(data){//line3     //使用data });    

假设getPromise()函数构造了一个新的Promise并且返回了它。你应该注意到then()的返回类型是一个新的Promise对象。在上面的例子中,line1反悔了一个新的Promise。我们也已经将一个回调函数传递给了then()。回调函数返回的值用来完成或者拒绝这个promise。但是,如果这个回电函数返回另一个Promise,这个新的Promise(由then()返回的)当且仅当在这个Promise成功是才能成功。

我们也在line 3添上了另一个then(),它将等待line 2返回的Promise。传递给它的回调函数将连同这个Promise的成功返回值一起被调用。你可以想这样来保持链式Promise。如果你需要处理任何的错误,可以在后面加上catch(),就像上一篇文章汇总提到的那样。

既然我们现在已经了解了链式Promise是怎样运行的了,我们可以进一步看看异步操作是怎样按顺序执行的。但是之前你需要了解一些额外的事情。

[编辑:admin]
分享到:
今日最新猜你喜欢
大话疲软经济:我们该怎么做

xy2.yzz.cn/guanzhu/201505/938872.shtml

这是怎么了:化无召唤兽低至1600

xy2.yzz.cn/picture/zhs/201505/938519.shtml

为红颜:三少力挺宝儿向年姐开战

xy2.yzz.cn/story/gossip/201505/938443.shtml

关于月光爱人CG 我们都是段子手

xy2.yzz.cn/story/other/201504/937995.shtml

微电影兄弟就差你了 感动常在

xy2.yzz.cn/video/201504/937337.shtml

感恩会 海量全新玩法双版齐发

xy2.yzz.cn/focus/201504/936697.shtml

《克火仙的秘密》系列大讲堂

xy2.yzz.cn/guide/201504/936246.shtml

大家爱看