回答編集履歴
1
chousei
answer
CHANGED
@@ -68,4 +68,52 @@
|
|
68
68
|
(1秒待って)
|
69
69
|
3
|
70
70
|
he
|
71
|
-
※すでにasnycFuncが処理済みなのでhe likesは表示されない
|
71
|
+
※すでにasnycFuncが処理済みなのでhe likesは表示されない
|
72
|
+
|
73
|
+
# さらに
|
74
|
+
|
75
|
+
```javascript
|
76
|
+
const asyncFunc=()=>{
|
77
|
+
return new Promise(resolve=>{
|
78
|
+
setTimeout(()=>{
|
79
|
+
console.log(3);
|
80
|
+
resolve("he");
|
81
|
+
},1000);
|
82
|
+
});
|
83
|
+
}
|
84
|
+
|
85
|
+
const wait=async()=>{
|
86
|
+
console.log(2.1);
|
87
|
+
console.log(2.2);
|
88
|
+
await console.log(2.3);
|
89
|
+
console.log(2.4);
|
90
|
+
console.log(2.5);
|
91
|
+
let a = await asyncFunc().then(val=>{
|
92
|
+
console.log(val);
|
93
|
+
return val + " likes";
|
94
|
+
});
|
95
|
+
console.log(a);
|
96
|
+
console.log(5);
|
97
|
+
}
|
98
|
+
|
99
|
+
console.log(1);
|
100
|
+
wait();
|
101
|
+
console.log(4.1);
|
102
|
+
for(var i=0;i<999999999;i++){} //同期処理で重めのループ
|
103
|
+
console.log(4.2);
|
104
|
+
```
|
105
|
+
結果:
|
106
|
+
1
|
107
|
+
2.1
|
108
|
+
2.2
|
109
|
+
2.3 //ここでawaitがかかるので処理が移り
|
110
|
+
4.1
|
111
|
+
(ちょっと考え込んで)
|
112
|
+
4.2 //同期処理が続くので終了まで待ち
|
113
|
+
2.4 //元の処理にもど
|
114
|
+
2.5
|
115
|
+
(1秒待って)
|
116
|
+
3
|
117
|
+
he
|
118
|
+
he likes
|
119
|
+
5
|