目录
Promise基础
Promise的链式调用
Promise的静态方法
async.await
catch方法
.catch(onRejected)
= .then(null, onRejected)
链式调用
-
then方法必定会返回一个新的Promise
可理解为
后续处理也是一个任务
-
新任务的状态取决于后续处理:
- 若没有相关的后续处理,新任务的状态和前任务一致,数据为前任务的数据。
- 若有后续处理但还未执行,新任务挂起。
- 若后续处理执行了,则根据后续处理的情况确定新任务的状态。
- 后续处理执行无错,新任务的状态为完成,数据为后续处理的返回值。
- 后续处理执行有错,新任务的状态为失败,数据为异常对象。
- 后续执行后返回的是一个任务对象,新任务的状态和数据与该任务对象一致。
由于链式任务的存在,异步代码拥有了更强的表达力。
// 常见任务处理代码
/*
* 任务成功后,执行处理1,失败则执行处理2
*/
pro.then(处理1).catch(处理2)
/*
* 任务成功后,依次执行处理1、处理2
*/
pro.then(处理1).then(处理2)
/*
* 任务成功后,依次执行处理1、处理2,若任务失败或前面的处理有错,执行处理3
*/
pro.then(处理1).then(处理2).catch(处理3)