Так что я потратил кучу времени на написание какой-то код, как это:Что заставляет node.js ждать завершения запроса?
function processResponse(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
} else {
console.error(util.inspect(response, false, null));
}
waiting = false;
};
request.get(requestOpts.url, processResponse);
console.log("Waiting");
while(waiting) {
count += 1;
if(count % 10000000 == 0) {
console.log(count);
}
}
Я пытался получить узел ждать (а не выход), пока réponse не вернулся из веб-сервера. Оказывается, это didnt 'работа, и что работа не делала ничего. Just:
request.get(requestOpts.url, processResponse);
Как запрос удерживал узел от выхода во время ожидания обратного вызова?
Асинхронный примитив, используемый 'request' (в' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'указывает, что узел не должен завершаться, когда есть обратный вызов, ожидающий результата. – Bergi
Не могли бы вы рассказать об этом примитиве? – boatcoder
Это родной. Он реализован во внутренних узлах платформы узлов. Он напрямую связан с циклом событий. Об этом не так много сказано. – Bergi