質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
```javascript
|
7
7
|
var func1 = function(){
|
8
|
-
return new Promise(function(resolve
|
8
|
+
return new Promise(function(resolve){
|
9
9
|
var sum = 1+1; //処理1 (15分掛かる処理)
|
10
10
|
resolve(sum);
|
11
11
|
})
|
@@ -37,6 +37,7 @@
|
|
37
37
|
処理1
|
38
38
|
|
39
39
|
|
40
|
+
|
40
41
|
ただ、上記のコードの最後の部分を以下のように順番を変えて、実行すると、このような結果になりましたので、処理結果の出力順は、Promiseを呼び出す順番によって決まるのかなと思ってしまいました。
|
41
42
|
```javascript
|
42
43
|
func2().then(function(sum){console.log(sum)});
|
@@ -45,4 +46,47 @@
|
|
45
46
|
```
|
46
47
|
処理2
|
47
48
|
処理1
|
48
|
-
処理3
|
49
|
+
処理3
|
50
|
+
|
51
|
+
|
52
|
+
#### Re:think49さん
|
53
|
+
|
54
|
+
Promise内でコールバック関数を使わないと非同期処理にならないとのことで、上記コードが非同期にならない理由がわかりました。以下のようにすれば期待する結果が得られるでしょうか。コメントアウトに記述した時間だけ処理に時間が掛かると仮定として考えてください。
|
55
|
+
```javascript
|
56
|
+
var func1 = function(){
|
57
|
+
return new Promise(function(resolve){
|
58
|
+
setTimeout(function(){
|
59
|
+
var sum = 1+1; //処理1 (15分掛かる処理)
|
60
|
+
resolve(sum);
|
61
|
+
},0);
|
62
|
+
})
|
63
|
+
}
|
64
|
+
|
65
|
+
var func2 = function(){
|
66
|
+
return new Promise(function(resolve){
|
67
|
+
setTimeout(function(){
|
68
|
+
var sum = 2+2; //処理2 (10分掛かる処理)
|
69
|
+
resolve(sum);
|
70
|
+
},0);
|
71
|
+
})
|
72
|
+
}
|
73
|
+
|
74
|
+
var func3 = function(){
|
75
|
+
return new Promise(function(resolve){
|
76
|
+
setTimeout(function(){
|
77
|
+
var sum = 3+3; //処理3 (5分掛かる処理)
|
78
|
+
resolve(sum);
|
79
|
+
},0);
|
80
|
+
})
|
81
|
+
}
|
82
|
+
|
83
|
+
func2().then(function(sum){console.log(sum)});
|
84
|
+
func1().then(function(sum){console.log(sum)});
|
85
|
+
func3().then(function(sum){console.log(sum)});
|
86
|
+
```
|
87
|
+
|
88
|
+
期待する結果
|
89
|
+
|
90
|
+
6 //5分後
|
91
|
+
4 //10分後
|
92
|
+
2 //15分後
|
1
誤字
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,6 +1,4 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
3
|
-
ここに質問の内容を詳しく書いてください。
|
4
2
|
Promiseを使って以下のようなコードを書いたとき、処理1-3の結果はどのような順番で表示されるかを知りたいです。それぞれの処理は完了するまで、コメントアウトに記載している時間が掛かる前提です。
|
5
3
|
|
6
4
|
### 該当のソースコード
|