前提・実現したいこと
Promiseとは下記のように then をつけると、関数1の処理が終わったあとに関数2の処理をやってくれるものだと認識しています。
関数1().then(関数2);
発生している問題・エラーメッセージ
関数1の処理が終わらずに関数2が実行される。
該当のソースコード
JavaScript
1var file_path = "....." 2 3var file_upload = (param_path) =>{ 4 var formData = { 5 'file': fs.createReadStream(param_path), 6 'timeout': '10000' //milliseconds 7 }; 8 9 //コールバック関数のpost処理 10 request.post({url:url, formData:formData}, function(err, response, body) { 11 if(err){ 12 console.log(err) 13 }else{ 14 console.log(body) 15 console.log("post完了") 16 }; 17 }); 18} 19 20 21var promiseUpload = function(param_path){ 22 console.log("start --- promiseUpload ---") 23 return new Promise(function(resolve, reject){ 24 resolve(file_upload(param_path)); 25 }); 26} 27 28promiseUpload(file_path).then(function(){ 29 console.log("end --- promiseUpload ---") 30});
期待値
start --- promiseUpload --- post完了 end --- promiseUpload ---
現実
start --- promiseUpload --- end --- promiseUpload --- post完了
推測
request.postのようなコールバック関数がある場合はいかにPromiseといえども、コールバック関数の戻りまでは待ってくれないのでしょうか?
補足情報(FW/ツールのバージョンなど)
Ubuntu18.04
node v14.15.3
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/31 15:17