現在下記のaction()を実行すると、
0
4
[object Promise]d
1
2
abc
3
と出力されます。
これを
0
1
2
3
4
abcd
と出力させたいのですが、
そうするには
console.log(message + 'c');の前に
js
1console.log(3); 2console.log(4);
と記述するしかないでしょうか
await action();と言う記述で
定義されたaction()内のすべての処理が終了するまで
待つという認識でした。
この認識は誤ってますでしょうか。
私の記述が悪いためこうなっているのか、
現在は
action()内のすべての処理が終了するまで
待たずにconsole.log("4");が実行されている状況です。
0
1
2
3
4
abcd
と言うように並ぶにはjavascriptの仕様として
どうするのが一番よろしいでしょうか。
どなたか教えてください。
js
1export default class TestClass { 2 async action(){ 3 await new Promise(function(resolve, reject){ 4 console.log(0); 5 resolve('a'); 6 }) 7 .then(function(message){ 8 console.log(1); 9 return message + 'b'; 10 }) 11 .then(function(message){ 12 console.log(2); 13 console.log(message + 'c'); 14 return message; 15 }); 16 console.log(3); 17 } 18} 19var result = await new TestClass().action(); 20console.log("4"); 21console.log(result + "d");
回答2件
あなたの回答
tips
プレビュー