日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2023-12-30 14:25:51

Re①:AWAIT実行

通り道 さん

生成されるJavascriptを見た感じでは特定の条件におけるバグを踏んだように思います。
・asyncFn===trueでマークされる、非同期な命令を使用している
・pure!==falseでマークされる、変数への参照・設定を含む可能性のある命令を使用している
・その命令を呼び出しているスコープにローカル変数が存在する
AWAIT実行は前2つの条件を満たしてます。
この3つの条件が揃うと、この命令の行が非同期の待機なしで実行されます(バグだと思われる)。
(「それ」への代入も非同期になってます)
そのため、「その」への代入が遅れて、1つまえの「その」が見えているのだと思います。
「その」を介さずAWAIT実行の行でspに代入した場合、awaitで待つべきPromiseが代入されます。
どちらの場合も期待したようになりません。
なお、spにPromiseを入れたケースでそのPromiseをユーザ関数から戻り値とした場合は、ユーザ関数の呼び出しにawaitが付くので呼び出し元では内容が取り出せます。

王道としてはバグが修正されるのを待つことになると思います。

(編集パスワード送信)

子記事

親記事 (No.1799)
返信した記事(元) (No.1799)

この内容(No.1805)に返信

この内容(No.1805)をダウンロード

この内容(No.1805)のテキスト表示





www.eznavi.net