###前提・実現したいこと
JavaScriptの勉強を始めたばかりなのですが、
Promiseのthenで躓いています。
下記ソースコードを実行した際に、
process1実行→500ms後にthenが発動しprocess2が実行
とされるものと思っていたのですが、
実際は
procsee2→process1の順に実行されてしまいます。
thenの使用方法が間違っているのだと思いますが、
なぜprocess1→procsee2の順番に実行されないのかわかりません。
setTimeOutがそれぞれ非同期で実行され,
process2の方が待ち時間が短いため、先に実行終了するのだと思いますが、
thenはそれをprocess1→2の順で実行してくれるのだと思っていました。
下記のソースコードの誤りと、
どうすれば想定した挙動になるかを教えて頂けないでしょうか。
よろしくお願いします。
JavaScript
1function process1() { 2 return new Promise(function(resolve, reject){ 3 setTimeout(function(){ 4 console.log("process1"); 5 resolve(); 6 }, 500); 7 }); 8} 9 10function process2() { 11 return new Promise(function(resolve, reject){ 12 setTimeout(function(){ 13 console.log("process2"); 14 resolve(); 15 }, 200); 16 }); 17} 18 19function test() { 20 process1().then(process2()); 21} 22 23>process2 24 process1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/11 07:49
2016/09/11 07:51