質問編集履歴
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 
     | 
    
         
             
            ### 該当のソースコード
         
     |