回答編集履歴

1

補足の追記

2023/07/19 20:23

投稿

退会済みユーザー
test CHANGED
@@ -29,3 +29,33 @@
29
29
  console.log("end");
30
30
  })();
31
31
  ```
32
+
33
+ ### 補足
34
+
35
+ もうひとつ、質問にある元のコードとかなり違ってしまいますが `for await...of` を使ってみる案です。
36
+
37
+ ```javascript
38
+ const box = document.querySelector(".box");
39
+ const num = document.querySelector(".num");
40
+
41
+ async function* valueGenerator(value, timeout=1000) {
42
+ while (value > 0) {
43
+ await new Promise(resolve => setTimeout(resolve, timeout));
44
+ yield value;
45
+ value --;
46
+ }
47
+ }
48
+
49
+ (async () => {
50
+ console.log("start");
51
+
52
+ for await (const v of valueGenerator(5)) {
53
+ num.textContent = v;
54
+ }
55
+
56
+ console.log("end");
57
+ })();
58
+
59
+
60
+ ```
61
+