Я пытаюсь найти источник необработанного отказа от Promise в Node.js
Я попытался обновить до Node версии 12, используя --async-stack-traces
опцию, и прослушал их, используя:
process.on("unhandledRejection",( reason, promise ) => {
console.log(reason);
console.log(promise);
});
Но я все еще не вижу никакой полезной трассировки стека, чтобы помочь мне найти виновника!
UnhandledPromiseRejectionWarning: TypeError: Chaining cycle detected for promise #<Promise>
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:89675) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 11)
Работающий узел v10.10.0
const cyclic = Promise.resolve().then(()=>cyclic);
, поэтому не ищите необработанное отклонение обещания, это во внутреннем коде узла.
npm i bluebird
и добавление const Promise = require('bluebird')
в код может дать вам более подробное сообщение об ошибке
--trace-warnings
, необработанные отклонения сопровождаются предупреждениями, которые вы можете отследить