MST

星途 面试题库

面试题:JavaScript期约(Promise)链式调用的基本理解

请解释JavaScript中Promise链式调用的原理,并编写一个简单示例,包含三个Promise,第一个Promise返回一个数字,第二个Promise将这个数字翻倍,第三个Promise将翻倍后的数字加1,最后输出结果。
25.2万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

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首先被解决并返回数字5promise2接收5并翻倍返回10promise3接收10并加1返回11,最后将11输出到控制台。