Diyelim ki 12 async/await
işlevlerim var ve 12. bir derinlikte bir hata meydana geldi. Şu anda, tüm hataları yakalamak için bu kodu vardır:Async/await kullanırken tam Node.js yığın izi nasıl alınır?
process.on('unhandledRejection', function {
console.error(err);
process.exit(1);
});
: Ben yapısı ile geri aramalar kullanılan diğer projelerde
ReferenceError: sdfg is not defined
- get.js:29 Fruit.module.exports [as get]
/project/models/fruit/get.js:29:2
- next_tick.js:129 process._tickDomainCallback
internal/process/next_tick.js:129:7
:
function doSomething(err, done) {
if (err) { return done(err); }
/* do something */
return done(null, true);
}
Ardından, hatanın oluştuğu yer olan güzel bir yığın izi ve oraya giden adımlar vardı. Şimdi async/await
ile sonuçsuz her türlü seviyedeki hataları yakalamayı denedim. Ben de longjohn
ve stackup
denedim - ve hala hatayı atmak sadece son işlevi alıyorum.
Yardım - tüm yığını nasıl görebilirim? Ve iç içe async/bekliyor hataları yakalamak için uygun yol nedir?
DÜZENLEME: (komple örnek)
const getA = async() => {
await getB();
}
const getB = async() => {
await getC();
sdgf();
}
const getC = async() => {}
const start = async() => {
await getA();
}
start().then().catch(e => console.error(e));
Bunun anlamı veren şeydir: \t ReferenceError: sdfg [get olarak] Fruit.module.exports de \t tanımlanmamıştır (/models/fruit/get.js:29:2) \t process._tickDomainCallback de (internal/process/next_tick.js: 129: 7) –
@JohnDerring, sdfg'nin meyve modelinin 29. satırında tanımlanmadığını söyleyen bir yığın izine benziyor. Neyi kaçırıyorum? –
Bu işleve başlamadan önce gelen 11 diğer işlev? Başka bir deyişle tam yığın izi ...? –