这段代码有什么作用?
await new Promise((resolve) => (Bugsnag.notify(ex, eventCallback), resolve));
function eventCallback(event) {
addMetadata(event, md);
addMetadata(event, ex.bugsnagMetadata);
}
function addMetadata(event, md) {
if(!md) return;
for (let mdKey in md) {
let mdValue = md[mdKey];
if(typeof(mdValue) === 'object')
event.addMetadata(mdKey, mdValue);
else
event.addMetadata(mdKey, mdKey, mdValue);
}
}
随意忽略eventCallback
,addMetadata
。我已经将它们包括在内以获取额外的上下文。
我最初问 Bugsnag 如何在 Bugsnag.notify 上使用 async/await,他们用上面的第一行代码做出了回应。
该代码大部分时间都运行良好,但是当我在 mocha 中调试测试时,它会无限期地挂起等待。
在 notify 异步完成之后,resolve 最终如何以正确的顺序被调用?