正常的Promise对象抛出的状态值只能在回调函数resolve、reject或then、catch中作为形参得到。
直到做项目过程中偶然发现了这个。。。
(async () => {
console.log(
await (() => {
return new Promise((resolve, reject) => {
setTimeout(() => {
// resolve();
reject();
}, 5000);
}).then(() => 'yes').catch(() => 'no');
});
);
console.log('wow');
})();
看控制台会输出什么。。。
网上一查原因发现有人说ES8的async await可以在Promise的回调函数中把抛出值返回到全局。。。
不信邪,把async和await去掉再试
// (async () => {
console.log(
// await
(() => {
return new Promise((resolve, reject) => {