Я должен сделать несколько последовательных вызовов на стороне сервера в NodeJs , используя модуль запроса и RxJs Observable
У меня есть массивURL-адрес, например, ['www.google.com', 'facebook.com'] Когда я делаю запрос на вызов, сервер попадает в цикл обработки событий.Я хочу знать, когда мой последний URL-вызов получит ответ, чтобы я мог отправить ответ клиенту. Вот мой код
const foo = Observable.create(function (observer) {
res.writeHeader(200, { "Content-Type": "text/html" });
var str = '<html><head></head><body><h1> Following are the responses: </h1><ul>'
res.write(str);
let count = 0;
addressesArray.forEach(function (element, i) {
observer.next(element);
if (some Condition) {
console.log('here i want to call complete when I get last response')
// observer.complete();
}
})
})
, и это моя функция подписки
const subscription = foo.subscribe({
next : addres =>
{
request(addres , function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(response)
}
if (typeof response === "undefined" || typeof body === "undefined") {
console.log('No resp')
}
})
},
complete:()=>{console.log('done')}
})