回答編集履歴

1

sleep()実装例

2022/12/09 01:56

投稿

int32_t
int32_t

スコア20884

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
+