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!!!')