Heim > Fragen und Antworten > Hauptteil
Ich habe einige Linters gesehen, die dieses Verhalten gemeldet haben, aber ich frage mich, ob das nicht einer der Gründe ist, warum Sie Versprechen verwenden:
const promise = myFn() //do other stuff const result = myOtherFn(await promise)
Fehler: Versprechen sollte abgewartet oder erfasst werden
Ist das also ein schlechter Code? Wenn ja warum?
P粉2957286252024-04-02 00:25:25
是的,这是 await
的不寻常用法,也是可能导致应用程序崩溃的不良做法。
通常你会立即 await
的承诺:
const value = await myFn() // do other stuff const result = myOtherFn(value);
不立即 await
ing 承诺的问题是,当 // do other stuff
正在运行时,当它因错误而拒绝时,您会错过。如果其他东西是异步的,你可能 await
太晚了,如果其他东西本身抛出异常,你永远不会 await
它,在这两种情况下,这都会导致 promise
未经处理的拒绝,这将使你的应用程序崩溃。另请参阅等待多个并发等待操作和< a href="https://stackoverflow.com/questions/45285129/any-difference- Between-await-promise-all-and-multiple-await">await Promise.all() 和多个等待之间有什么区别?一个>.