Js | Promise Chain

测试代码

function taskA() {
 console.log("Task A");
}
function taskB() {
 console.log("Task B");
}
function onRejected(error) {
 console.log("Catch Error: A or B", error);
}
function finalTask() {
 console.log("Final Task");
}
var promise = Promise.resolve();
promise
 .then(taskA)
 .then(taskB)
 .catch(onRejected)
 .then(finalTask);

在这里插入图片描述

promise chain的执行流程

在这里插入图片描述

Task A产生异常的例子
function taskA() {
 console.log("Task A");
 throw new Error("throw Error @ Task A")
}
function taskB() {
 console.log("Task B");// 不会被调用
}
function onRejected(error) {
 console.log(error);// => "throw Error @ Task A"
}
function finalTask() {
 console.log("Final Task");
}
var promise = Promise.resolve();
promise
 .then(taskA)
 .then(taskB)
 .catch(onRejected)
 .then(finalTask);

在这里插入图片描述

在这里插入图片描述

Task B产生异常的例子
function taskA() {
 console.log("Task A");
}
function taskB() {
 console.log("Task B");// 不会被调用
 throw new Error("throw Error @ Task A")
}
function onRejected(error) {
 console.log(error);// => "throw Error @ Task A"
}
function finalTask() {
 console.log("Final Task");
}
var promise = Promise.resolve();
promise
 .then(taskA)
 .then(taskB)
 .catch(onRejected)
 .then(finalTask);

在这里插入图片描述

Promise Chain 传参
function doubleUp(value) {
	return value * 2;
}
function increment(value) {
	return value + 1;
}
function output(value) {
 	console.log(value);// => (1 + 1) * 2
}
var promise = Promise.resolve(1);
promise
 	.then(increment)
 	.then(doubleUp)
 	.then(output)
 	.catch(function(error){
	// promise chain中出现异常的时候会被调用
	console.error(error);
});

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值