Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9349

Node.js非同期処理について超簡略サンプル

$
0
0
以下のNodeを実行すると、順番がぐちゃぐちゃになる。 junban.js function output ( txt){ console.log("関数処理始まり"); //出力 setTimeout(function(){ console.log('hoge') }, 1000) console.log(txt); //出力 console.log("関数処理終わり"); //出力 }; async function main(){   console.log('読み込み前');   await output('処理')   console.log('読み込み後'); } main() $ node junban.js 読み込み前 関数処理始まり 処理 関数処理終わり 読み込み後 hoge この状態ではawaitは効かない。 return new Promiseを使うと、結果は返ってくる。 function output (txt){ return new Promise((resolve, reject) =>{ console.log("関数処理始まり"); //出力 setTimeout(function(){ console.log('1秒待つ') }, 1000) setTimeout(function(){ resolve('更に待つ') }, 1000) console.log(txt); //出力 console.log("関数処理終わり"); //出力 }) }; async function main(){ console.log('読み込み前'); result = await output('処理') console.log('result :', result); console.log('読み込み後'); } main() resolveがreturnと同じような戻り値になる。 なんか関数内の動きがめっちゃ変だけど…。

Viewing all articles
Browse latest Browse all 9349

Trending Articles