- Promise.resolve()
- 将现有的对象转化为Promise对象;
- 如果参数是promise实例,则直接返回这个实例;
- 如果参数是thenabled对象,则先将其转化为promise对象,然后立即执行这个对象的then方法;
- 如果参数是一个原始值,则返回一个promise对象,状态为resolved,这个原始值会传递给回调;
- 没有参数,直接返回一个resolved的promise对象;
- Promise.reject()
- 同上,但是返回的是rejected状态的promise对象;
- Promise.all()
- 接收一个Promise实例的数组或者具有Iterator接口的对象;
- 如果元素不是Promise对象,则使用Promise.resolve转成Promise对象;
- 如果全部成功,状态变成resolved,返回值将组成一个数组传给回调;
- 只要有一个失败,状态就变为rejected,返回值将直接传递给回调;
- all()的返回值也是新的Promise对象;
- Promise.race()
- 同上,区别是只要有一个Promise实例率先发生变化(无论状态变成resolved还是rejected)都将触发then中的回调,返回值将传递给回调
catch()和then(null, fn)
在有些情况下catch与then(null, fn)并不相同:
|
|
此时,catch捕获的并不是ajaxLoad1的错误,而是ajaxLoad2的错误,所以需要结合两者一起来用:
|
|
断链
|