美文网首页
promise面试题

promise面试题

作者: 靴唯白 | 来源:发表于2023-02-14 16:30 被阅读0次

常见问题:

  1. 是否可以用 return 代替 promise?
    答:不可以,无法实现链式调用,也无法改变状态
  2. 使用 throw 还是 reject?
    答:Promise的构造函数,以及被then调用执行的函数都可以被认为是在try-catch的代码块中执行的,所以在这些代码中即使使用throw,程序本身也不会因为异常而发生改变,promise的状态也不会发生改变。

promise执行时间:

  1. resove 后面的代码会不会被执行?

new Promise 会立即执行,reslove之后的输出也会继续打印,而且是首先打印出来,then是异步执行的

const testReturn  = (a) => {
  return new Promise((resolve, reject) => {
      if(a) {
          resolve('exec true')
          console.log('this will be exec')
      } else {
          reject('false')
      }
  })
}
testReturn(true).then(str => {
  console.log(str)
})
// 执行结果: 
// this will be exec    
// exec true  

答:当没有error的时候,resolve会将Promise.then放在微任务队列中,当所有的宏任务执行结束的时候,执行微任务队列。
当有error的时候,error后面的代码不会执行,但是Promise的结果依然是fullfilled

  1. Promise 遇到 setTimeout
  • 宏任务:script setTimeout setInterval requrestAnimationFrame
  • 微任务:new promise().then(回调) process.[nextTick]

分析:

const testReturn = (a) => {
return new Promise((resolve, reject) => {
    setTimeout(() => {
    if (a) {
        resolve("111");
        console.log("222");
    } else {
        reject("333"); 
    }
    });
    console.log("444");
});
};
testReturn(true)
.then((str) => {
    console.log("555");
})
.catch((err) => {
    console.log('666');
});
// 执行结果:
// 444
// 222
// 555
此题分析图

相关文章

  • Promise面试题

    Promise面试题 题目一 解析首先Promise新建后立即执行,所以会先输出1,2,而Promise.then...

  • js.Promise 解决地狱回调

    之前见过的一道Promise面试题的答案

  • promise经典面试题

    上期讲了promise基本概念和用法,今天结合上期的内容,讲解几道经典的相关面试题。 promise基本规则: 1...

  • es6的promise面试题【整理】

    十道es6的Promise面试题,附答案 http://www.bslxx.com/a/mianshiti/tik...

  • Promise 面试题

    题目 A、B、C、D 四个请求,B 依赖于 A 的结果,D 依赖于 B、C 的结果

  • 2018面试题

    常见Promise面试题 传送门:https://juejin.im/post/5b31a4b7f265da595...

  • JavaScript异步发展史

    一道面试题引发的血战。问:怎么理解异步的发展过程,例如axios、ajax、promise、await、async...

  • generator

    面试题 将类数组转化成数组 用generator 异步读取数据,也得通过返回promise,层层调用。 解决方式,...

  • Promise值穿透

    我们经常会遇到这样的面试题 当然,输出的结果为foo。问其原因,答案如题——Promise值穿透 解释:.then...

  • 杂记

    有C,OC,JS,有面试题,有笔记,有学习知识,不系统,很杂 Node.js最新技术栈之Promise篇

网友评论

      本文标题:promise面试题

      本文链接:https://www.haomeiwen.com/subject/umsdkdtx.html