面试题答案
一键面试Promise链式调用原理
在JavaScript中,Promise链式调用的原理基于Promise的then
方法返回一个新的Promise这一特性。当一个Promise被解决(resolved)或被拒绝(rejected)时,then
方法会返回一个新的Promise对象,这个新的Promise会根据then
回调函数的返回值来决定其状态。如果回调函数返回一个值,新的Promise将以这个值被解决;如果回调函数抛出一个错误或返回一个被拒绝的Promise,新的Promise将被拒绝。通过这种方式,可以将多个then
方法连接起来形成链式调用,从而按顺序处理异步操作。
示例代码
const promise1 = new Promise((resolve) => {
resolve(5);
});
const promise2 = promise1.then((num) => {
return num * 2;
});
const promise3 = promise2.then((doubledNum) => {
return doubledNum + 1;
});
promise3.then((result) => {
console.log(result);
});
上述代码中,promise1
首先被解决并返回数字5
,promise2
接收5
并翻倍返回10
,promise3
接收10
并加1
返回11
,最后将11
输出到控制台。