回答編集履歴
2
具体例追加
test
CHANGED
@@ -5,3 +5,20 @@
|
|
5
5
|
`Promise`にした後は必然的に全面的な書き直しになると思います。イベントの処理は皆さん言われるように重たい処理は非同期(`async/await`)で行いましょう。
|
6
6
|
|
7
7
|
あと自動実行時のUI制御もちゃんとしてくださいね。
|
8
|
+
|
9
|
+
----
|
10
|
+
(追記)
|
11
|
+
具体例がないと分からないかもしれないので、sleep()を例えばこうすべきという例だけ書いておきます。
|
12
|
+
```JavaScript
|
13
|
+
const delay = msec => new Promise(resolve => setTimeout(resolve, msec));
|
14
|
+
|
15
|
+
async function sleep(sec) {
|
16
|
+
console.log("Sleeping");
|
17
|
+
await delay(sec * 1000);
|
18
|
+
console.log("Sleeping Break!!");
|
19
|
+
}
|
20
|
+
...
|
21
|
+
await sleep(3);
|
22
|
+
...
|
23
|
+
```
|
24
|
+
普通に順に直していったら動くことは動きました。
|
1
promiseをPromiseにした
test
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
**最終的に全面的な書き直しが必要です**。
|
2
2
|
|
3
3
|
一番の問題は`sleep(3)`です。ビジーループで待っているので、この間に描画もUI操作もできません。これをclickイベントの中でやるのは初心者でもダメです。
|
4
|
-
ビジーループの代わりに`setTimeout()`を使ってください。`sleep()`を`setTimeout()`と`
|
4
|
+
ビジーループの代わりに`setTimeout()`を使ってください。`sleep()`を`setTimeout()`と`Promise`で書き直せばOKです。
|
5
|
-
`
|
5
|
+
`Promise`にした後は必然的に全面的な書き直しになると思います。イベントの処理は皆さん言われるように重たい処理は非同期(`async/await`)で行いましょう。
|
6
6
|
|
7
7
|
あと自動実行時のUI制御もちゃんとしてくださいね。
|
8
|
-
|