Я создаю небольшой скрипт, чтобы лучше понимать обратный вызов.Понимание обратных вызовов
Из приведенного ниже сценария поведение, которое я ожидал, было следующим: «http.get работает и занимает в среднем 200 мс. Приращение цикла« i »занимает в среднем 2500 мс. В 200 мс процесс должен выйти, а сценарий должен быть остановлен на работу. Почему печать все я? Если я понимаю это лучше, я думаю, я понимаю обратный вызов.
var http = require("http");
var starttime = new Date();
//Function with Callback
for (var j =0; j<10; j++){
http.get({host : 'nba.com'}, function(res){
console.log("Time Taken = ", new Date() - starttime, 'ms');
process.exit();
}).on('error', function(er){
console.log('Got Error :', er.message);
})
}
//Loop that exceeds callback trigger time
for(var i=1; i<10000; i++){
console.log(i);
}
console.log("Time Taken = ", new Date() - starttime, 'ms');
Цикл for является синхронным, а код в нем асинхронным. Он работает через цикл for, запуская вызов getynyn. Цикл for завершает работу до того, как активируются обратные вызовы. В Интернете есть много документов и образцов, чтобы проиллюстрировать работу async. – bryanmac
Спасибо bryanmac. Я проверю их. Теперь это ясно, как облако. – PatrickJames