Javascript值不会随着它所包含的变量的增加而改变
Javascript value doesn't change when the variable contained in it increases
我有一个程序在node.js。它连接到提供带有数据的JSON文件的web服务,但是该文件仅显示有限数量的数据(每个请求500条记录),从请求中的index参数的值开始。"lastentry"返回当前数据页中最后一条记录的ID。Lastpage是一个布尔值,表示到达最后一页的时间。
第一个请求是这样的:http://example.com/data.json?index=0
我构建这个函数是为了获取最后一条记录的ID。它调用自己,直到lastpage为真。根据我从JSON中读取的值,索引变量随着每个请求正确地增加,但是"url"不会改变,并且始终保持为0,即使它是从索引变量构建的。为什么呢?var lastpage = false;
var index = 0;
var url = "http://example.com/data.json?index=" + index;
function getLastEntry() {
request(url, function (err, resp, body) {
if (err || resp.statusCode != 200) {
// error handling
} else {
var data = JSON.parse(body);
index = data.lastentry;
lastpage = data.lastpage;
if (lastpage == false) {
getLastEntry();
}
}
}
}
getLastEntry();
这不是JavaScript的工作方式。一旦你初始化了变量"url",初始化表达式就不会再被计算了。然而,你可以在每次调用"request"时安排它发生,只需将计算移到那里:
var url = "http://example.com/data.json?index=";
function getLastEntry() {
request(url + index, function (err, resp, body) {
相关文章:
- 将标量变量转换为javascript中包含变量的数组
- 为什么不是't my元素:使用变量而不是字符串时包含(变量)功?jquery
- Javascript-将包含变量的html字符串作为参数传递
- td:包含变量中的搜索字符串
- 检索本身包含变量的 Jquery 变量名的值
- 如何在 ngModel 中包含变量
- JavaScript-设置数组中包含变量的数组
- Javascript-包含变量的多个数组
- javascript标记中包含变量的AngularJS JSON数组
- 为什么在循环的Javascript中包含变量声明
- 在 JavaScript 常规模式中包含变量
- 有没有办法返回一个包含变量的字符串
- 如何在 AJAX 数据中包含变量
- 如何创建包含变量作为键的 jquery 数组
- 在此 JavaScript 代码中包含变量的正确语法是什么
- 我需要在表单提交后显示一条包含变量(表单中的答案)的消息
- 如何将数据转换为json类型,其中数据包含变量
- 在URL中包含变量
- 通过属性和包含变量将Object传递给指令
- 大写元音:包含变量会使If语句的行为异常