質問編集履歴

8

追加する

2020/06/28 01:02

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -93,3 +93,47 @@
93
93
  それではsetIntervalを1にしても1ミリ秒未満にrisizeが呼ばれれば同じことなのでしょうか。
94
94
 
95
95
  他にいい方法はないでしょうか
96
+
97
+
98
+
99
+ 教えてもらった参考コード。
100
+
101
+ ```javascript
102
+
103
+ let resol; //JavaScrptの基礎が解ってないのですが、これをコメントアウトしても動きます。なぜでしょうか?
104
+
105
+ plot();
106
+
107
+ async function plot(){
108
+
109
+ let i = 0;
110
+
111
+ while( true ){ // 永遠と繰り返す
112
+
113
+ //何かの処理
114
+
115
+ console.log(i++);//動作を確認
116
+
117
+ if( await new Promise( resolve => {
118
+
119
+ resol = resolve
120
+
121
+ setTimeout( () => { resolve( false ) }, 1000 );
122
+
123
+ } ) ){ break };
124
+
125
+ }
126
+
127
+ }
128
+
129
+
130
+
131
+ window.addEventListener("resize",function(){
132
+
133
+ resol( true ); //whileをbreak
134
+
135
+ plot();
136
+
137
+ });
138
+
139
+ ```

7

追加する

2020/06/28 01:02

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,16 @@
15
15
  下記のようにwhile(true)をちゃんとbreakしてからplot()を再度呼ぶようにするもっといい方法があるでしょうか?
16
16
 
17
17
  ```javascript
18
+
19
+
20
+
21
+ function delay(sec) {
22
+
23
+ return new Promise(resolve => setTimeout(resolve, sec));
24
+
25
+ }
26
+
27
+
18
28
 
19
29
  let br = 0, ft = 0, move = 0;
20
30
 
@@ -39,6 +49,8 @@
39
49
  break;
40
50
 
41
51
  }
52
+
53
+ //console.log("plot"); // breakしたかを確認する時
42
54
 
43
55
  }
44
56
 
@@ -68,6 +80,8 @@
68
80
 
69
81
  }
70
82
 
83
+ //console.log("fbr"); // Intervalが止まるかを確認する時
84
+
71
85
  }
72
86
 
73
87
  })

6

追加する

2020/06/25 09:28

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -73,3 +73,9 @@
73
73
  })
74
74
 
75
75
  ```
76
+
77
+ setIntervalを10にすると、10ミリ秒未満に再びrisizeされるとsetIntervalが呼ばれて複数のIntervalが動くことになるのは解りました。
78
+
79
+ それではsetIntervalを1にしても1ミリ秒未満にrisizeが呼ばれれば同じことなのでしょうか。
80
+
81
+ 他にいい方法はないでしょうか

5

間違えた

2020/06/25 04:05

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -10,9 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- ここで質問なのですが、最初setIntervalの秒数を10にしていました。それだとwindowのリサイズ動作をやりまくるとタイミングによってsetIntervalが止まらないことがありました。それで、setIntervalの秒数を1にしたらちゃんと止まるようになりました。
13
+ ここで質問なのですが、最初setIntervalの秒数を10にしていました。それだとwindowのリサイズ動作をやりまくるとタイミングによってsetIntervalが止まらないことがありました。それで、setIntervalの秒数を1にしたらちゃんと止まるようになりました。たまたま止まっているのでしょうか?
14
-
15
- たまたま止まっているのでしょうか?
16
14
 
17
15
  下記のようにwhile(true)をちゃんとbreakしてからplot()を再度呼ぶようにするもっといい方法があるでしょうか?
18
16
 

4

間違えた

2020/06/25 03:37

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -28,11 +28,11 @@
28
28
 
29
29
  async function plot(){
30
30
 
31
-   await delay(10);
32
-
33
31
  br = 0, ft = 0, move = 0; // 変数を全部 0 にする
34
32
 
35
33
  while(true){
34
+
35
+      await delay(10);
36
36
 
37
37
  //何かの処理
38
38
 

3

間違えた

2020/06/25 03:36

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -26,7 +26,9 @@
26
26
 
27
27
 
28
28
 
29
- function plot(){
29
+ async function plot(){
30
+
31
+   await delay(10);
30
32
 
31
33
  br = 0, ft = 0, move = 0; // 変数を全部 0 にする
32
34
 

2

間違えた

2020/06/25 03:35

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  window.addEventListener("resize",function(){
52
52
 
53
- if(move)return; // setInterval動作中は return させる
53
+ if(move)return; // Interval動作中は return させる
54
54
 
55
55
  ft = 1;
56
56
 

1

間違えた

2020/06/25 03:30

投稿

takahashi-one
takahashi-one

スコア119

test CHANGED
File without changes
test CHANGED
@@ -36,7 +36,7 @@
36
36
 
37
37
  if (ft) { // whileをbreakさせる
38
38
 
39
- break top;
39
+ break;
40
40
 
41
41
  }
42
42