Rumah > Soal Jawab > teks badan
Saya telah melihat beberapa baris menunjukkan tingkah laku ini, tetapi saya tertanya-tanya jika itu bukan sebahagian daripada sebab anda menggunakan janji:
const promise = myFn() //do other stuff const result = myOtherFn(await promise)
Ralat: Janji harus ditunggu atau ditangkap
Jadi adakah ini kod buruk? Jika ya, mengapa?
P粉2957286252024-04-02 00:25:25
Ya, ini adalah penggunaan luar biasa await
dan amalan buruk yang boleh menyebabkan apl anda ranap.
Biasanya anda akan serta-merta await
komited untuk:
const value = await myFn() // do other stuff const result = myOtherFn(value);
Tidak serta-merta Masalah dengan await
ing 承诺的问题是,当 // do other stuff
正在运行时,当它因错误而拒绝时,您会错过。如果其他东西是异步的,你可能 await
太晚了,如果其他东西本身抛出异常,你永远不会 await
它,在这两种情况下,这都会导致 promise
janji ialah anda terlepas apabila ia menolak dengan ralat semasa // melakukan perkara lain
sedang dijalankan. Jika perkara lain tidak segerak, anda mungkin terlambat, jika perkara lain membuang pengecualian itu sendiri, anda tidak pernah itu, dalam kedua-dua kes ini akan mengakibatkan janji
tidak dapat dikendalikan penolakan, yang akan ranap permohonan anda. Lihat juga < a href="https://stackoverflow.com/questions/45285129/any-difference- Between-await-promise-all-and-multiple-await">menunggu berbilang operasi menunggu serentak一个> dan