当Javascript值包含在其中的变量增加时,它不会改变

时间:2014-08-18 14:27:29

标签: javascript node.js variables increment

我在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();

1 个答案:

答案 0 :(得分:2)

这不是JavaScript的工作方式。一旦你初始化了变量" url",就不会再次计算初始化表达式。但是,您可以安排在每次拨打电话时发生#34;请求"只需在那里移动计算:

var url = "http://example.com/data.json?index=";

function getLastEntry() {
    request(url + index, function (err, resp, body) {