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が必要だってだけで。