Skip to content

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

js

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!!!"


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

```js
return Promise.reject(new Error('error!!!'));
// or
throw new Error('error!!!')