好像我的代码执行乱序......
这是我的代码:
console.log("Function Call - " + profAvailable("Plumber"));
function profAvailable(occ) {
var result = false;
var reqGet = http.get(optionsget, function(res) {
res.on('data', function(d) {
//parsing the data to JSON format
var parsedShit = JSON.parse(d);
providers = parsedShit.Providers;//Getting a list of all the providers
console.log("Provider Length: " + providers.length);
for (var i = 0; i < providers.length; i++) {
if (providers[i].Occupation.localeCompare(occ) == 0 && providers[i].Status == 0) {
result = true;
}
}
});
});
reqGet.end();
console.log("result - " + result);
return result;
}
我的输出是:
result - false
Function Call - false
Provider Length: 4
我的代码正在调用该函数,跳过http请求,将方法返回为false,然后输入函数内部的http请求(从代码中的print语句和输出中可以看到)。这是我第一次使用这样的东西,所以我不确定为什么代码按顺序执行,因为它看起来很奇怪。
编辑**函数返回的值取决于我从get调用中检索的信息,那么如何修复我的代码以包含它?
答案 0 :(得分:0)
这就是预期程序的行为方式。您需要精通异步编程。参考:http://rowanmanning.com/posts/javascript-for-beginners-async/