Skip to content

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

Posted on:2022年1月9日 at 23:01
Promise.resolve()
  .then(() => {
    return new Error("error!!!");
  })
  .then((res) => {
    console.log("then: ", res);
  })
  .catch((err) => {
    console.log("catch: ", err);
  });

解析

返回任意一个非 promise 的值都会被包裹成 promise 对象,因此这里的return new Error('error!!!')也被包裹成了return Promise.resolve(new Error('error!!!'))

结果

"then: " "Error: error!!!"

此题中,当然如果想抛出一个错误的话,可以用下面的任意一种:

return Promise.reject(new Error("error!!!"));
// or
throw new Error("error!!!");
原文转自:https://fe.ecool.fun/topic/e0e3dbcd-2e8a-4756-9241-bbb23af9c2e8