【震惊】Node爆惊天大bug,影响数千万Node.js进程!他竟然一行代码就修复了!他到底做了啥?
发布于 8 年前 作者 zengming00 5963 次浏览 来自 问答

很多天前old big让我测试在async中throw和return的效率,偶然踩中了坑

async function foo() {
    throw new Error();
}
(async function test() {
    for (let i = 0; i < 100000; i++) {
        try {
            await foo();
        } catch (e) {
        }
    }
})();
console.log('done');

是什么原因呢?

下面仅仅四行代码也硬了

for (let i = 0; i < 100000; i++) {
    Promise.reject().catch(e => { });
}
console.log('done');
// 只需一行代码。node就冷静下来了
global.Promise = require('bluebird');
for (let i = 0; i < 100000; i++) {
    Promise.reject().catch(e => { });
}
console.log('done');
7 回复

(¬_¬)真是学以致用

你成功通过了UC头条部的考核,请于明日到总部报道。

真是头条体。。 目测是Promise实现问题,node的promise是自己实现的,用的也不是v8的Promise

楼主没有打印执行时间?

明天来UC震惊部上班

回到顶部