Skip to content

【Promise第22题】下面代码的输出是什么?

Posted on:2022年1月9日 at 23:02
Promise.resolve()
  .then(
    function success(res) {
      throw new Error("error!!!");
    },
    function fail1(err) {
      console.log("fail1", err);
    },
  )
  .catch(function fail2(err) {
    console.log("fail2", err);
  });

解析

由于Promise调用的是resolve(),因此.then()执行的应该是success()函数,可是success()函数抛出的是一个错误,它会被后面的catch()给捕获到,而不是被fail1函数捕获。

结果

fail2 Error: error!!!
    at success
原文转自:https://fe.ecool.fun/topic/9656ede7-6815-4a00-9df3-60c0219e4383