我想获得PouchDB中每个数据库的计数。当我试图将它包装在jQuery承诺中时,当它完成时它会将promise对象而不是结果发送给then();
function validateAppData(event) {
var db1 = new PouchDB( "distributors" );
var db2 = new PouchDB( "categories" );
var db3 = new PouchDB( "genericTypes" );
var db4 = new PouchDB( "products" );
$.when(
db1.info(),
db2.info(),
db3.info(),
db4.info()
).then( function( distributors, categories, genericTypes, products ) {
console.log(distributors);
console.log(categories);
console.log(genericTypes);
console.log(products);
console.log("all done")
console.log(distributors.doc_count);
} );
}
控制台输出如下。
请让我知道如何在每个对象中获得回复。
谢谢。
答案 0 :(得分:1)
使用Promise.all()
。 jQuery延迟对象不一定处理与Promise
方法
Promise
个对象
答案 1 :(得分:1)
您可以使用Promise.all()
来处理多项承诺,只需查看docs。
var db1 = new PouchDB("distributors");
var db2 = new PouchDB("categories");
var db3 = new PouchDB("genericTypes");
var db4 = new PouchDB("products");
Promise.all([
db1.info(),
db2.info(),
db3.info(),
db4.info()
]).then(([ distributors, categories, genericTypes, products ]) => {
console.log(distributors);
console.log(categories);
console.log(genericTypes);
console.log(products);
console.log("all done");
console.log(distributors.doc_count);
});