Js是单线程的,Promise solution是一种异步编程的思想,比传统的回调函数和事件强大很多。Promise相当于异步操作结果的占位符。它不是订阅事件或
Js是单线程的,Promise solution是一种异步编程的思想,比传统的回调函数和事件强大很多。Promise相当于异步操作结果的占位符。它不是订阅事件或者向目标函数传递回调函数,而是让函数返回一个承诺(相当于订单号)。
promise:英文Promise的意思是Promise对象持有未来事件的结果(通常是异步操作)。
承诺有三种状态:
待定,拒绝,已解决
切换承诺对象的状态只有两种可能:
挂起-& gt;已拒绝,待定-& gt;断然的
基本用法:
新承诺((已解决,已拒绝)= & gt{})
承诺对象已解析,被拒绝的函数,异步事件状态挂起-->:解析的回调成功时将调用解析的函数;当异步操作失败时,回调使用被拒绝的函数。
Promise的then(resolved,rejected)函数有两个参数,一个resolved函数和一个rejected函数。
Promise的catch():Promise错误函数捕获错误,该错误与then函数参数中rejected的函数相同,并处理错误。因为promise抛出的错误有冒泡的性质,可以持续传递,会传递给catch,所以建议把所有的错误处理都放到catch中,然后只处理成功的。
Promise的一大特点是可以链式调用,Promise对象可以在then,catch中返回。
Promise.all ([Promise1,Promise2]):参数是Promise对象的数组。当所有的promise对象都被解析后,对象的状态将被解析,然后立即被调用。当一个promise对象被拒绝时,该对象的状态将被拒绝,catch将被执行。
Promise.race ([Promise1,Promise2]):一个竞赛函数。当promise对象的状态改变时,该对象将采用与相同的状态并执行相应的功能。
承诺的生命周期
每一个承诺都会经历一个短暂的生命周期,最初处于挂起状态,这意味着异步操作还没有结束。待定的承诺也被认为是不确定的。一旦异步操作结束,Promise将被视为已结算,并进入两种可能的状态之一:
1.已完成:承诺的异步操作已成功结束;
2.拒绝:Promise的异步操作没有成功结束,可能是错误或其他原因造成的。
一旦状态发生变化,就会“固化”,一直保持这个状态,不会再发生变化。当状态改变时,将调用由promise.then绑定的函数。注意:一旦创建了承诺,它将“立即运行”,并且不能取消。这也是它的缺点之一。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/58819.html