jQuery值未被保留

时间:2015-04-07 06:23:00

标签: jquery

我正在使用PouchDB数据库:

我发现-1是replace()调用中插入的内容。

console.log(result.total_rows);显示5(这是我的期望)。

为什么totalRows没有保存此值?

        var totalRows = -1;
        fDatabase.allDocs().then(function(result) {
            console.log(result);
            console.log(result.total_rows);
            totalRows = result.total_rows;
        }).catch(function(error) {
            console.log(error);
        });

        var descriptionText = $('#description');

        // -1 is coming up here instead of 5???
       descriptionText.text(descriptionText.text().replace('__NUMBER__', totalRows));

1 个答案:

答案 0 :(得分:3)

由于allDocs方法是异步的,因此您的替换方法将在查询完成之前执行,totalRows将使用正确的计数进行更新。

解决方案是将更新描述代码放在成功回调中。

var totalRows = -1;
fDatabase.allDocs().then(function (result) {
    console.log(result);
    console.log(result.total_rows);
    totalRows = result.total_rows;
    //since it is async need to place it in the callback
    var descriptionText = $('#description');
    // -1 is coming up here instead of 5???
    descriptionText.text(descriptionText.text().replace('__NUMBER__', totalRows));
}).
catch (function (error) {
    console.log(error);
});