回答編集履歴

2

追記

2017/05/22 14:12

投稿

yambejp
yambejp

スコア114968

test CHANGED
@@ -51,3 +51,79 @@
51
51
 
52
52
 
53
53
  ```
54
+
55
+
56
+
57
+ # 追記
58
+
59
+ なにか噛み合っていないようですね
60
+
61
+ 私の理解力がないのでしょうか、お役に立てずに残念です
62
+
63
+ 一応sample追加しときますが、おそらく質問者さんのやりたいこととは違うのでしょうね
64
+
65
+
66
+
67
+ ```
68
+
69
+ <script src="https://www.promisejs.org/polyfills/promise-6.1.0.min.js"></script>
70
+
71
+ <script>
72
+
73
+ var prm=[];
74
+
75
+ console.log("start");
76
+
77
+ for(var i=0;i<100;i++){
78
+
79
+ (function(i){
80
+
81
+ prm[i]= new Promise(function(resolver){
82
+
83
+ var xhr = new XMLHttpRequest();
84
+
85
+ xhr.open('GET','recv.php?x='+i,true);
86
+
87
+ xhr.addEventListener("load" ,function() {
88
+
89
+ console.log(this.response)
90
+
91
+ resolver(this);
92
+
93
+ });
94
+
95
+ xhr.send();
96
+
97
+ });
98
+
99
+ })(i);
100
+
101
+ }
102
+
103
+ Promise.all( prm ).then(function(){
104
+
105
+ console.log("end");
106
+
107
+ });
108
+
109
+
110
+
111
+ </script>
112
+
113
+ ```
114
+
115
+
116
+
117
+ - 呼び出し先recv.php
118
+
119
+ ```PHP
120
+
121
+ <?PHP
122
+
123
+ sleep(3);
124
+
125
+ print $_GET["x"];
126
+
127
+ ?>
128
+
129
+ ```

1

sample

2017/05/22 14:12

投稿

yambejp
yambejp

スコア114968

test CHANGED
@@ -5,3 +5,49 @@
5
5
  rejectの想定を404エラーなどだと想定しているのであれば
6
6
 
7
7
  statusをみてresolveで処理してみてはいかがでしょうか?
8
+
9
+
10
+
11
+ # sample
12
+
13
+ startが表示されてから1秒後に10秒間かけて1000個のデータを表示
14
+
15
+
16
+
17
+ ```javascript
18
+
19
+ <script src="https://www.promisejs.org/polyfills/promise-6.1.0.min.js"></script>
20
+
21
+ <script>
22
+
23
+ var prm=[];
24
+
25
+ console.log("start");
26
+
27
+ for(var i=0;i<1000;i++){
28
+
29
+ (function(i){
30
+
31
+ prm[i]= new Promise(function(resolver){
32
+
33
+ setTimeout(function(){console.log(i);resolver(this);},1000+10*i);
34
+
35
+ });
36
+
37
+ })(i);
38
+
39
+ }
40
+
41
+ Promise.all( prm ).then(function(){
42
+
43
+ console.log("end");
44
+
45
+ });
46
+
47
+
48
+
49
+ </script>
50
+
51
+
52
+
53
+ ```