[過去ログ] Go language part 5 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
890
(2): デフォルトの名無しさん [sage] 2025/05/18(日) 13:19:05.01 ID:eaOArS/2(1/12) AAS
>>887
プログラミング初心者かよ
コールバックがあればPromise作って返せるからasync/awaitを使える
そういう基本的なことを知らずに批判しているのか?
仕組みを理解せずに表層的にasync/awaitを見てるからそうなる
893
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 14:00:53.82 ID:eaOArS/2(2/12) AAS
>>891
Promise作るのにどこに面倒があるんだ?
プログラミングしたことがないエアプかよ
自作できないならお子様向けのpromisifyもあるだろ
894
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 14:05:05.90 ID:eaOArS/2(3/12) AAS
>>892
呆れた
表層的知識でPromiseの理解と実装をできないからそんな勘違いを犯すんだな
JavaScriptならasync/awaitはPromiseのシンタックスシュガーだ
Promiseを作って返したらそのままasync対応したことになるのが一番の基礎だぞ
897
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 14:46:40.43 ID:eaOArS/2(4/12) AAS
>>895
まだ理解できていないんだな?
JSのasync関数はその返値のPromiseを返す関数そのままのシンタックスシュガーだ
他の言語ではasync関数がその返値のPromise(やFuture)を返す関数そのままではなくコルーチンなどステートマシンを伴うこともあるがJSはそのままで完成という本質的な違いがある
899
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 14:56:03.43 ID:eaOArS/2(5/12) AAS
>>896
おまえは別のやつの書き込みと勘違いしているな
書き込みを見返してみろ
俺はシングルスレッドにすぎないJavaScriptのasync/awaitが優れているとは一度も言ってないぞ
強いて言えば非同期タスクをスタックレスで実現しているRustのasync/awaitだろうな
Goroutineと同じN:Mモデルをスタックレスと両立させている
902
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 15:12:48.04 ID:eaOArS/2(6/12) AAS
>>901
アホかよ
Promiseを返すだけの普通の関数がそのままasync関数の代わりに使えるんだぞ
その返したものをawait promise;とそのままawaitできる
シンタックスシュガーだからな
905
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 15:47:15.22 ID:eaOArS/2(7/12) AAS
>>903
C#やRustなどの言語はステートマシンにする必要があるがJavaScriptはそのまま行けるところが最大の特徴
asyncもPromiseもないコールバックだけの時代からなぜコールバック待ちの間に無関係な他の関数が実行できるのかを理解できなかったのか?
その枠組があるから多数の非同期イベントが飛び交うブラウザ内でも並行処理ができる
知らないなら基礎だから勉強しろ
907: デフォルトの名無しさん [sage] 2025/05/18(日) 16:10:19.90 ID:eaOArS/2(8/12) AAS
>>906
なんだ少しは理解してるじゃないか
言語の中でepollなどでイベントループを抱え込んでいてそれがPromiseもasyncも無い大昔からJavaScriptは同じ
つまりasync/awaitなんか関係なく初めからイベントループを内蔵している
これはWebブラウザという無数に非同期タスクが飛び交う必要性からその仕様となった
そのためC#などより早く非同期タスクが実現されてきた
そのためC#などようなステートマシン変換なんか必要とせずに単なるシンタックスシュガーだけでasync/awaitも導入できている
910
(1): デフォルトの名無しさん [sage] 2025/05/18(日) 16:42:27.02 ID:eaOArS/2(9/12) AAS
>>909
おまえまだ別人と勘違いしてるのか
俺はシングルスレッドにすぎないJavaScriptの非同期が優れているとは一度も言ってないぞ
CPUコアスレッドを透過的に使いこなせるN:Mモデルが一番優れていると伝えただろ
912
(2): デフォルトの名無しさん [sage] 2025/05/18(日) 16:54:47.55 ID:eaOArS/2(10/12) AAS
>>911
何度も説明しているのに理解できないのは呆れる
async/awaitなんか導入する前からJavaScriptはPromiseで非同期に動いている
シンタックスシュガーにすぎないasync/await記法の導入によってステートマシンの導入なんか必要ない
918
(3): デフォルトの名無しさん [sage] 2025/05/18(日) 23:50:58.93 ID:eaOArS/2(11/12) AAS
>>915
帰ってきたがまだ理解できてないのか
Promiseは何か秘密な仕組みや秘密なシステムや秘密なランタイムがあるわけではなく単なるデータだ
Promiseを介することでステートマシンなんか使うことなくasync関数を通常関数に自動変換できる
例えばこんなasync関数がある時

async function delay(n) {
 await new Promise((resolve, reject) => setTimeout(resolve, n * 1000));
 return n;
}

async function foo() {
 console.log("hello");
 let a = await delay(1);
 let b = await delay(2);
 let c = a + b;
 console.log(`${a} + ${b} = ${c}`);
 return c;
}
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);
   });
  });
 });
}
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.029s