私はjavascriptに少し慣れていません。最近、私は node.js プロジェクトに取り組んでおり、javascript での非同期コールバックの問題に遭遇しました。私のコードは以下の通りです:
したがって、理想的には、リクエスト メソッドを実行し、次に res.on('data') イベントからのコールバックを実行し、最後に .each() イテレータのコールバックを呼び出します。残念ながら、javascript の非同期性により、最初のコールバックが実行される前であっても、プログラムはメイン コード ブロックを終了します。
var req = https.request(options, function(res) {
// console.log("statusCode: ", res.statusCode);
// console.log("headers: ", res.headers);
console.log('1st call back exec');
res.on('data', function(d) {
console.log('2st call back exec');
var $ = cheerio.load(d);
//traversing method
$('.dddefault').each(function(i){
console.log('3st call back exec');
if(i == 3){
remainingSeats = parseInt($(this).text().trim());
console.log('inner0:'+remainingSeats);
return;
}
});
console.log('inner1:'+remainingSeats);
});
console.log('inner2:'+remainingSeats);
});
req.end();
req.on('error', function(e) {
console.error(e);
});
意図したとおりにコードを動作させるために、誰かが私を正しい方向に向けることができますか? ありがとう。