async/awaitはJavaScriptにもあるが、あれはC#とかで必要なのであって、JavaScriptでは要らないね。
理由は、
・外側関数(上位階層)の変数は全部クロージャになっていて読み出せる。
・関数はどこにでも書ける。
から。C的に関数毎に変数が完全に分離している時にはasync/awaitでないと変数が共有出来ないけど、
JavaScriptの文法だとcallbackでも変数共有出来るから、要らん。具体的には、文法は適当だが、
function someTask {
var x = xxx;
var a = await funcA(x);
var b = await funcB(a,x);
}
みたいなのを、
function someTask {
var x = xxx;
var a, b; // 共有変数は上位で宣言しておく。これでクロージャから捕捉出来る。;
function funcA(){}
funcA(funcB); // funcBはcallback、funcA内でxは使える、aにも書ける
function funcB(){} // funcB内でa,xは使える、bにも書ける
}
だからawait毎にぶった切ってcallbackしても、上から順に実行するだけの単純ソースにしかならない。
JavaScriptなら、どっちでもいいや位でしかないんだよ。
C#ではこれができないから、async/awaitが必要だってだけで。
ただ俺もcallbackと言ったがこれは間違いだった。VC++では非同期のcallbackはやってないわ。
ウザイと思ったのは関数ポインタを差し込む時に型チェックがあることだった。
上記の通り、JavaScriptでは関数ポインタでさえあれば引数の型と個数は関係なく呼んでくるので、
関数ポインタを差し込む時にいちいち考える必要がないんだよ。
そして機能追加は追加パスだけの変更で済む。
C++の型チェックだと変更がソース全体に及ぶしこれを断れない。
引数の型とか個数を間違えた場合、普通は根本的に動かないなら、テストでは当てさえすれば検出出来る。
そんな簡単なエラーチェックの為にコンパイルを通すだけの為にいちいち型を合わせたり、
変更がソース全体に波及するのが危険でウザイって事。
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
180デフォルトの名無しさん (ワッチョイ ad23-vgeI)
2017/08/30(水) 23:03:09.90ID:F1WQhw000■ このスレッドは過去ログ倉庫に格納されています
ニュース
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 「残クレ」でマイホーム、国が銀行向け保険 新型住宅ローン普及促す -日経 ★3 [少考さん★]
- 【サッカー】日本代表、FIFAランキング“4位”の強豪イングランドとの対戦が正式決定! 来年3月に聖地ウェンブリーで激突へ [久太郎★]
- タイがカンボジアを空爆、トランプ氏仲介の和平合意は“事実上崩壊”軍事衝突へ タイ首相「もはや対話の余地ない」 [お断り★]
- 粗品「南原が3億も貰えんの?」 [279254606]
- 🏡ダブパン本仕込み~🍞🍞😅🍞🍞🏡
- 朝雑談
- 【悲報】ゆうパック配達員、配達中に人妻に抱きつき無理矢理キス「好意があると思ってた」 [566475398]
- 【動画】フィギュアスケート、米中ハーフのアリッサ・リュウさん、可愛い [963243619]
- 【画像】ドドド童貞は絶ッッッ対"1"を選ぶ出店で緊張してる大分のJ Kの集合写真見つけちゃいましたwwwwwwwwwwww [904880432]
