0
点赞
收藏
分享

微信扫一扫

前端面试题之代码输出

念川LNSC 2023-10-09 阅读 24

接昨天代码输出题目,

前端面试题之代码输出

前端面试题之代码输出二

异步&事件循环

5.代码输出结果

const promise = new Promise((resolve, reject) => {
    resolve('success1');
    reject('error');
    resolve('success2');
});
promise.then((res) => {
    console.log('then:', res);
}).catch((err) => {
    console.log('catch:', err);
})

输出结果如下:

then: success1

解析:

这个题目考察的就是Promise的状态在发生变化之后,就不会再发生变化。开始状态由 pending 变为 resolve说明已经变为已完成状态,下面的两个状态的就不会再执行,同时下面的catch也不会捕获到错误。

6.代码输出结果

Promise.resolve(1)
    .then(2)
    .then(Promise.resolve(3))
    .then(console.log)

输出结果如下:

1

const promise = new Promise((resolve, reject) => {
    console.log(1);
    setTimeout(() => {
        console.log("timerStart");
        resolve("success");
        console.log("timerEnd");
    }, 0);
    console.log(2);
});
promise.then((res) => {
    console.log(res);
});
console.log(4);

Promise.resolve().then(() => {
    console.log('promise1');
    const timer2 = setTimeout(() => {
        console.log('timer2')
    }, 0)
});
const timer1 = setTimeout(() => {
    console.log('timer1')
    Promise.resolve().then(() => {
        console.log('promise2')
    })
}, 0)
console.log('start');

start
promise1
timer1
promise2
timer2

举报

相关推荐

0 条评论