我需要打多个电话。网址中唯一更改的参数是末尾的数字。因此,基本上我需要某种循环并不断触发get调用。 get调用一旦完成将触发回调。回调将检查响应的特定文本。如果它与某个字符串匹配,则需要中断循环并结束程序。据我了解,循环将继续运行,而不必等待任何异步代码完成并调用回调。
简而言之,我需要检查get呼叫响应中是否存在某些字符串。一旦在任何响应中找到我的字符串,我就必须停止拨打电话。
我对javascript和nodeJS相当陌生。任何帮助都会很棒。
/* Simple Hello World in Node.js */
var https = require('https');
var url="https://jsonmock.hackerrank.com/api/countries?page=";
var notFound = true;
var page=1;
var code='AF';
while(notFound){
console.log(page);
triggerReq(url+page);
page++;
}
function triggerReq(url){
//console.log(url);
https.get(url, (res)=>{
console.log('callback for - '+url);
f1(res);
}
);
/*
This code currently works because of this end condition for the loop.
*/
if (page==5){
notFound=false;
//console.log('page = '+page);
}
}
function f1(res){
console.log('inn');
res.on('data',(text)=>{
//console.log('inn');
var obj = JSON.parse(text);
for(var x in obj.data){
console.log(obj.data[x].name);
if(obj.data[x].alpha2Code==code){
console.log('### FOUND ### - '+obj.data[x].name);
notFound=false;
}
}
});
}