Итак, я решал это learnyounode
упражнение под названием Juggling Async , которое в основном дает мне 3 URL-адреса и просит вывести содержимое URL-адреса в порядке ввода URL-адресов.
Я придумал рекурсивное решение, в котором обратный вызов вызывает другой обратный вызов при сохранении счетчика выхода num
.Однако, когда я запускаю это, я продолжаю получать пустые строки на консоли, независимо от того, что вводить.
Это короткий код:
var url = ["", process.argv[2], process.argv[3], process.argv[4]];
var http = require('http');
var str = ["", "", "", ""];
var cnt = 1;
function dos(num, callback)
{
if(num == 4)
return;
http.get(url[num], function (response1){
// console.log(num);
response1.setEncoding('utf8');
response1.on('data', function(data1) {
str[num] = data1;
callback(num + 1, dos);
})
});
}
dos(1, dos);
console.log(str[1]);
console.log(str[2]);
console.log(str[3]);
Теперь это мой первый развыполнение рекурсии с функциями обратного вызова.Я изучил функции обратного вызова всего два дня назад, что может означать, что здесь что-то явно не так, чего я не вижу.Пожалуйста, помогите мне увидеть.Спасибо.