if语句javascript中的局部变量
为什么结果是5555?不是7777?我认为eval是全局值,if语句将eval值更新为7777,我认为结果将是7777,但我意识到它不是。谁能告诉我为什么。对不起,我有类似的问题 您正在执行异步任务。 回调函数不一定在if语句javascript中的局部变量,javascript,Javascript,为什么结果是5555?不是7777?我认为eval是全局值,if语句将eval值更新为7777,我认为结果将是7777,但我意识到它不是。谁能告诉我为什么。对不起,我有类似的问题 您正在执行异步任务。 回调函数不一定在控制台.log之前运行 这就是javascript非阻塞IO的本质。当您需要执行IO操作时,您可以传递回调,当IO完成时,它将调用您的回调,同时CPU可以自由地在JS文件中执行其他过程。您正在执行异步任务。 回调函数不一定在控制台.log之前运行 这就是javascript非阻塞I
控制台.log
之前运行
这就是javascript非阻塞IO的本质。当您需要执行IO操作时,您可以传递回调,当IO完成时,它将调用您的回调,同时CPU可以自由地在JS文件中执行其他过程。您正在执行异步任务。 回调函数不一定在
控制台.log
之前运行
这就是javascript非阻塞IO的本质。当您需要执行IO操作时,您可以传递回调,当IO完成时,它将调用您的回调,同时CPU可以在您的JS文件中执行其他过程。请求中的回调是异步的 因此,当您调用
console.log
时,是在执行请求之前。尝试登录回调本身
var request = require('request');
var cheerio = require('request');
var eval = "5555";
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
var keys = body.split(",");
eval = keys[0]; // Think keys[0] is 7777
// and no problem in if statement, it must be excuted.
}
})
console.log("evalue :"+eval);
// result ---> 5555
请求中的回调是异步的
因此,当您调用console.log
时,是在执行请求之前。尝试登录回调本身
var request = require('request');
var cheerio = require('request');
var eval = "5555";
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
var keys = body.split(",");
eval = keys[0]; // Think keys[0] is 7777
// and no problem in if statement, it must be excuted.
}
})
console.log("evalue :"+eval);
// result ---> 5555
因为console.log
是在上述请求的响应到达之前执行的,因为这是异步执行。尝试将console.log
放在匿名函数中以获取所需的值
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
var keys = body.split(",");
eval = keys[0]; // Think keys[0] is 7777
console.log("evalue :"+eval);
}
})
因为console.log
是在上述请求的响应到达之前执行的,因为这是异步执行。尝试将console.log
放在匿名函数中以获取所需的值
request('http://google.com', function (error, response, body) {
if (!error && response.statusCode == 200) {
var keys = body.split(",");
eval = keys[0]; // Think keys[0] is 7777
console.log("evalue :"+eval);
}
})
请求
是异步的。因此,您的console.log在回调之前启动。require
不是普通JavaScript的一部分。这还需要标记什么?请求
是异步的。因此,您的console.log在回调之前启动。require
不是普通JavaScript的一部分。这还需要标记什么?