catch方法
.catch(onRejected) = .then(null, onRejected)
一般来说,我们使用 then 方法处理成功,使用 catch 方法处理失败
链式调用

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