[過去ログ] Go language part 5 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
919(2): デフォルトの名無しさん [sage] 2025/05/18(日) 23:54:17.15 ID:eaOArS/2(12/12) AAS
>>918のasync関数fooは以下のように機械的に通常関数fooへと自動変換できる
ステートマシンを使う必要はない
function foo() {
return new Promise((resolve, reject) => {
console.log("hello");
delay(1).then((_x1) => {
let a = _x1;
delay(2).then((_x2) => {
let b = _x2;
let c = a + b;
console.log(`${a} + ${b} = ${c}`);
resolve(c);
});
});
});
}
921: デフォルトの名無しさん [sage] 2025/05/19(月) 00:18:33.88 ID:m1yBrNr9(1/2) AAS
>>920
C#やRustは、await時に一時的にスケジューラに戻すために、ステートマシンのコルーチンに変換しますね。
しかし、JavaScriptはそのコルーチン化が不要なため、ステートマシンへの変換が不要ではないでしょうか?
実際にステートマシンを使わずに変換している>>919を使ってみたら、元のasync関数と全く同様に動作しました。
924(1): デフォルトの名無しさん [sage] 2025/05/19(月) 00:31:26.37 ID:m1yBrNr9(2/2) AAS
>>922
JavaScriptの場合はそうですよ
Promiseでくくれば本物の非同期で簡単に並行処理できます
C#のTask.Runも不要です
async関数の登場以前からasyncと同じ動作で動いていますよ
async関数は>>919のような感じのsyntax sugarなんです
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 1.717s*