0

这段代码有什么作用?

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);
    }
}

随意忽略eventCallbackaddMetadata。我已经将它们包括在内以获取额外的上下文。

我最初问 Bugsnag 如何在 Bugsnag.notify 上使用 async/await,他们用上面的第一行代码做出了回应。

该代码大部分时间都运行良好,但是当我在 mocha 中调试测试时,它会无限期地挂起等待。

在 notify 异步完成之后,resolve 最终如何以正确的顺序被调用?

4

0 回答 0