[過去ログ]
Go language part 5 (1002レス)
Go language part 5 http://mevius.5ch.net/test/read.cgi/tech/1645915400/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
913: デフォルトの名無しさん [] 2025/05/18(日) 17:36:48.91 ID:/UZONODy >>912 C# は Taskベースのスレッドプール実装が先にあり、その後async/awaitが導入され、コンパイラがTaskベースのステートマシンに変換する JS は callback, Promiseベースのイベントループ実装が先にあり、その後async/awaitが導入され、(JIT)コンパイラがPromiseベースのステートマシンに変換する この2つの一体何が違うのか説明しろ ChatGPTの回答 質問: JavaScript の async/await は内部でPromiseを使ったステートマシンに変換されますか? 回答 ``` はい。JavaScript の async/await は構文糖衣であり、内部的には Promise を使ったステートマシンに変換されます。 AsyncFunction は常に Promise を返す ECMAScript2017 の仕様では、async function を呼び出すと新しい Promise が即座に返されます。本体は zero 個以上の await 式で分割され、各 await ごとに実行を一時停止・再開する必要があるため、概念的にはステートマシンとして動作します モダン JavaScript エンジンでの最適化 V8(Chrome)、SpiderMonkey(Firefox)、JavaScriptCore(Safari)などのエンジンでも同様のステートマシン原理を内部に持ちつつ、ネイティブの AsyncFunction オブジェクトとして最適化して実装しています en.wikipedia.org ``` そしてお前は最初の話題であった標準ライブラリでasync/awaitがそのまま使えない問題について何も反論できてない 以下の3つについて反論しろ - なぜ promiseラップのsleep関数を実装するユーザが多いのか - なぜ標準ライブラリのhttpクライアントではなく axios等を使うのか - なぜ fs/promises は導入されたのか http://mevius.5ch.net/test/read.cgi/tech/1645915400/913
925: デフォルトの名無しさん [] 2025/05/19(月) 00:50:33.56 ID:dbv2av4u >>913 ChatGPTの回答が説明してるが例で書いてるPromise化されたコードも概念的にはステートマシンだよ awaitの地点を基準に変換してるってのはどの言語も同じ 実際Node.jsはJSコードにトランスパイルしてるんじゃなくて内部表現で変換してるはずだが ステートマシンだの内部実装はどうでもいい話で、それで他人に分かってないだの知識マウント取りに行ってるのがよくわからん http://mevius.5ch.net/test/read.cgi/tech/1645915400/925
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.052s