非同期/待機するGotcha


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') ...
私はまだ