Что делает этот код?
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, как использовать async / await на Bugsnag.notify, и они ответили приведенной выше первой строкой кода.
Код прекрасно работает большую часть времени, но когда я отлаживаю тест в mocha, он ждет неопределенно долго.
Как в конечном итоге вызывается разрешение и в правильном порядке - после асинхронного завершения уведомления?