我正在使用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));
答案 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);
});