async内でawaitしないならasyncしなくていいのにとは思いますが
考え方としてはawaitしたら効くように常にasyncしているだけかもしれないのでなんとも・・・
以下挙動の違いを見てもらえば課題は見えると思います
(なにもawaitしなかったり、中途半端にawaitしたときの挙動をきちんと想定して
運用しているならOK)
出力:1,2,3,4,end
javascript
1const hoge=async ()=>{
2 await new Promise(resolve=>{
3 setTimeout(()=>{
4 return resolve(1);
5 },2000);
6 }).then(data=>{
7 console.log(data);
8 });
9 await new Promise(resolve=>{
10 setTimeout(()=>{
11 return resolve(2);
12 },1500);
13 }).then(data=>{
14 console.log(data);
15 });
16};
17const fuga=async ()=>{
18 await new Promise(resolve=>{
19 setTimeout(()=>{
20 return resolve(3);
21 },1000);
22 }).then(data=>{
23 console.log(data);
24 });
25 await new Promise(resolve=>{
26 setTimeout(()=>{
27 return resolve(4);
28 },500);
29 }).then(data=>{
30 console.log(data);
31 });
32};
33
34(async ()=>{
35 await hoge();
36 await fuga();
37 console.log("end");
38})();
出力:end,4,3,2,1
javascript
1const hoge=async ()=>{
2 new Promise(resolve=>{
3 setTimeout(()=>{
4 return resolve(1);
5 },2000);
6 }).then(data=>{
7 console.log(data);
8 });
9 new Promise(resolve=>{
10 setTimeout(()=>{
11 return resolve(2);
12 },1500);
13 }).then(data=>{
14 console.log(data);
15 });
16};
17const fuga=async ()=>{
18 new Promise(resolve=>{
19 setTimeout(()=>{
20 return resolve(3);
21 },1000);
22 }).then(data=>{
23 console.log(data);
24 });
25 new Promise(resolve=>{
26 setTimeout(()=>{
27 return resolve(4);
28 },500);
29 }).then(data=>{
30 console.log(data);
31 });
32};
33
34(async ()=>{
35 await hoge();
36 await fuga();
37 console.log("end");
38})();
出力:1,4,end,3,2
javascript
1const hoge=async ()=>{
2 await new Promise(resolve=>{
3 setTimeout(()=>{
4 return resolve(1);
5 },2000);
6 }).then(data=>{
7 console.log(data);
8 });
9 new Promise(resolve=>{
10 setTimeout(()=>{
11 return resolve(2);
12 },1500);
13 }).then(data=>{
14 console.log(data);
15 });
16};
17const fuga=async ()=>{
18 new Promise(resolve=>{
19 setTimeout(()=>{
20 return resolve(3);
21 },1000);
22 }).then(data=>{
23 console.log(data);
24 });
25 await new Promise(resolve=>{
26 setTimeout(()=>{
27 return resolve(4);
28 },500);
29 }).then(data=>{
30 console.log(data);
31 });
32};
33
34(async ()=>{
35 await hoge();
36 await fuga();
37 console.log("end");
38})();
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 00:26