回答編集履歴
1
sleep()実装例
test
CHANGED
@@ -12,4 +12,26 @@
|
|
12
12
|
+ await new Promise(resolve => requestAnimationFrame(resolve));
|
13
13
|
```
|
14
14
|
|
15
|
+
----
|
16
|
+
追記:
|
15
17
|
|
18
|
+
`sleep(秒数)` のようなものがどうしても欲しいなら、以下のような実装にして、`await sleep(1);` のように使います。
|
19
|
+
```js
|
20
|
+
// setTimeout() 版
|
21
|
+
async sleep(sec) {
|
22
|
+
return new Promise(resolve => setTimeout(resolve, sec * 1000));
|
23
|
+
}
|
24
|
+
// rAF 版
|
25
|
+
async sleep(sec) {
|
26
|
+
const startTime = performance.now();
|
27
|
+
return new Promise(resolve => {
|
28
|
+
const sleepInternal = tick => {
|
29
|
+
if (startTime + sec * 1000 <= tick)
|
30
|
+
resolve();
|
31
|
+
requestAnimationFrame(sleepInternal);
|
32
|
+
};
|
33
|
+
requestAnimationFrame(sleepInternal);
|
34
|
+
});
|
35
|
+
}
|
36
|
+
```
|
37
|
+
|