teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

ちょっと修正

2017/06/01 06:44

投稿

yambejp
yambejp

スコア117902

answer CHANGED
@@ -9,9 +9,11 @@
9
9
  for(var i=0;i<10;i++){
10
10
  prm[i]=function(x){
11
11
  new Promise(function(resolver){
12
- setTimeout(function(){return resolver(this)},1000);
12
+ setTimeout(function(){
13
+ console.log(x);
14
+ return resolver(this);
15
+ },1000);
13
16
  }).then(function(){
14
- console.log(x);
15
17
  if(x<prm.length){
16
18
  prm[x](x+1);
17
19
  }else{

1

sample

2017/06/01 06:44

投稿

yambejp
yambejp

スコア117902

answer CHANGED
@@ -1,1 +1,26 @@
1
- Promiseで処理するとかでしょうか?
1
+ Promiseで処理するとかでしょうか?
2
+
3
+ # sample
4
+ 一応非同期処理を、順番を指定して実行するsampleを付けておきます
5
+ ```javascript
6
+ <script src="https://www.promisejs.org/polyfills/promise-6.1.0.min.js"></script>
7
+ <script>
8
+ var prm=[];
9
+ for(var i=0;i<10;i++){
10
+ prm[i]=function(x){
11
+ new Promise(function(resolver){
12
+ setTimeout(function(){return resolver(this)},1000);
13
+ }).then(function(){
14
+ console.log(x);
15
+ if(x<prm.length){
16
+ prm[x](x+1);
17
+ }else{
18
+ console.log("end");
19
+ }
20
+ });
21
+ }
22
+ }
23
+ prm[0](1);//実行
24
+ </script>
25
+
26
+ ```