awaitは予約語であり、forEachメソッドの引数をasync関数に変更した場合の問題点
2022-02-25 14:02:07
engine.registerHandler('breakpoint:*/EvaluateTest.java:*', async (event, arg1, arg2, detail) => {
utils.pathEquals(breakpointFile, detail.source.path).should.equal(true);
detail.line.should.equal(expectedLines[linePos++]);
console.log('***threads', await engine.threads());
let evaluateArguments = [{
type: "const",
request: "1+2",
expectedResponse: 3
}, {
type: "variable",
request: "i+1",
expectedResponse: 2
}, {
type: "notExistVariable",
request: "a",
expectedResponse: "a cannot be resolved to a variable"
}, {
type: "function",
request: "test()+10",
expectedResponse: 13
}];
let evaluateTest = async arg => {
let evaluateResponse;
try {
evaluateResponse = await engine.evaluate(arg.request, detail.id, "watch");
if (arg.type ! == "notExistVariable") {
console.log("******", "Evaluate " + arg.type);
assert(evaluateResponse.result.toString() === arg.expectedResponse.toString());
}
}
catch (ex) {
if (arg.type === "notExistVariable") {
console.log("******", "Evaluate not exisist variable");
assert(ex.message.includes(arg.expectedResponse));
}
}
};
for (let ele of evaluateArguments) {
await evaluateTest(ele);
}
When using babel to transcode, I encountered the error await is a reserved word, and after checking the documentation, I realized that the await command can only be used in the async function, and both async and await are operations on the promise
let evaluateTest=async function(arg). The other problem is that initially we used evaluateArguments.forEach(async function(ele){await evaluateTest(ele)}) and after a lot of console.log() we found that changing the arguments of the forEach method to The async function, evaluateTest(ele), is executed in parallel, i.e., simultaneously rather than sequentially.
let evaluateTest=async function(arg).
The other problem is that initially we used evaluateArguments.forEach(async function(ele){await evaluateTest(ele)}) and after a lot of console.log() we found that changing the arguments of the forEach method to
The async function, evaluateTest(ele), is executed in parallel, i.e., simultaneously rather than sequentially.
関連
-
PostionalBindingの役割のCmdletBindingAttribute
-
未定義のエラーのプロパティ 'replace' を読み取ることができません。
-
error: expect unqualified-id before 'delete' void delete(node* p,char a) ^.
-
解決方法: 'chromedriver' 実行ファイルが PATH に存在する必要があります。
-
PythonのTypeError: unbound methodの問題を解決する
-
liunx, makeでmysqlをインストール *** ターゲットが指定されておらず、makefileも見つかりませんでしたので停止しました。
-
Anaconda の PackagesNotFoundError: 次のパッケージは、現在のチャンネルから利用できません。
-
AVD システムパスが見つかりません。Please define ANDROID_SDK_ROOT この問題は、必ずしもパス設定にあるわけではありません。
-
エラーです。未解決のコンパイル問題の解決
-
Androidアプリケーション開発 - ビープ音とバイブレーションによる警告の実装
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
gitアップロードファイルのエラーを修正する方法 [rejected] master -> master (fetch first) error: failed to push some refs to '.
-
undefinedプッシュ問題マスター -> マスター (フェッチファースト)
-
null のプロパティ 'style' を読み取ることができない 問題
-
IIS 7.5上のASP.NET 4.0とチャートに関する質問
-
Android StudioでInvalid Gradle JDK configuration foundというエラーが表示される。
-
Python Basics: io.UnsupportedOperation: 読み取れません。
-
ModuleNotFoundError: tensorflow.contrib'という名前のモジュールがない ソリューション
-
[違反】スクロールブロックの「mousewheel」イベントに非パッシブなイベントリスナーを追加。
-
Assert.assertNotNull() で null 判定 Assertion
-
エラーの解決策 xmlのこの行に複数のアノテーションが見つかりました。