回答編集履歴
2
調整
test
CHANGED
@@ -5,8 +5,6 @@
|
|
5
5
|
```javascript
|
6
6
|
|
7
7
|
<script>
|
8
|
-
|
9
|
-
var timerId;
|
10
8
|
|
11
9
|
var json=[
|
12
10
|
|
@@ -50,7 +48,7 @@
|
|
50
48
|
|
51
49
|
/* var c=0;//ゴミでした */
|
52
50
|
|
53
|
-
timerId=setInterval(()=>{
|
51
|
+
var timerId=setInterval(()=>{ //timerIdはグローバルでなくても良かったので調整
|
54
52
|
|
55
53
|
if($('#continue').is(':hidden')){
|
56
54
|
|
1
解説
test
CHANGED
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
await new Promise(resolve=>{
|
50
50
|
|
51
|
-
var c=0;
|
51
|
+
/* var c=0;//ゴミでした */
|
52
52
|
|
53
53
|
timerId=setInterval(()=>{
|
54
54
|
|
@@ -75,3 +75,25 @@
|
|
75
75
|
<input type="button" value="continue" id="continue">
|
76
76
|
|
77
77
|
```
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
# 流れの解説
|
82
|
+
|
83
|
+
- async処理を宣言
|
84
|
+
|
85
|
+
- jsonからデータをxとして取り出す
|
86
|
+
|
87
|
+
- xを表示
|
88
|
+
|
89
|
+
- #continueボタンをxのtypeがchoiceだったとき表示する、そうでないときは非表示
|
90
|
+
|
91
|
+
- awaitでpromiseを呼び出し
|
92
|
+
|
93
|
+
- promise内部では1/10秒ごとに#continueボタンの表示状態をチェック
|
94
|
+
|
95
|
+
- 表示時=ユーザーからの入力待ち=promiseが進行しないので同期する
|
96
|
+
|
97
|
+
- 非表示時=インターバル処理をとめ(clearInterval),promiseから復帰(resolve)
|
98
|
+
|
99
|
+
- promiseから戻るとforループが進行しjsonの次のデータをチェック
|