非同期/待機するGotcha
1866 ワード
asyncは全く約束されていない
我々は約束から我々のコードベースでAsync/Waitを動かしていました、そして、大部分のために、それはかなり滑らかでした.コードのより少ない線、より表現力豊かな、その他.
しかし、渡された変数が約束かどうかをチェックするコードを1行持っていました.
if (promise instanceof Promise) ...
を返します.時々.ノード8ではfalseを返します.
(async () => {})() instanceof Promise
// -> false
Chromeでは、(async () => {})() instanceof Promise
// -> true
私の仮定はtrue
が正しい応答であり、これがノード(おそらくたぶん)で修正されるバグであるということです.一方、我々は使用している
if (promise instanceof Promise || promise.constructor.name === 'Promise') ...
私はまだReference
この問題について(非同期/待機するGotcha), 我々は、より多くの情報をここで見つけました https://dev.to/tyrw/an-async-await-gotcha-1fmテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol