Promise的生命周期
每个promise都会经历一个短暂的生命周期:先是处于进行中(pending)的状态,此时操作尚未完成,所以它也是未处理(unsettled)的;一旦异步操作执行结束,Promise则变为已处理(settled)的状态。已处理的状态又分为以下两种:
- Fulfilled Promise异步操作成功完成
- Rejected 由于程序错误或其他一些原因,Promise异步操作未能成功完成。
then()方法
所有Promise都有then()方法,它接受两个参数:第一个是当Promise的状态变为fulfilled时要调用的函数,与异步操作相关的附加数据都会传递给这个完成函数;第二个是当Promise的状态变为rejected时要调用的函数,其与完成时调用的函数类似,所有与失败状态相关的附加数据都会传递给这个拒绝函数。
then()的两个参数都是可选的,可以按照任意组合的方式来监听Promise,执行完成或被拒绝都会被响应。来看下面实例: