punchDB / allDocs / .then return 一个值

punchDB / allDocs / .then return a value

我是 js 和 punchDB 的新手,在从 pounchDB 获取数据时遇到问题

这在获取数据和处理过程中很常见

 db.allDocs({include_docs: true}).then(function (result) {
    console.log( result.rows);
 }));

但我想return"result.rows"

var result = db.allDocs({include_docs: true}).then(function (result) {
    return  result.rows;
}));

是的,我可以通过 skip .then

输出 allDocs 函数
var result= db.allDocs({include_docs: true});

但它是一个复杂的输出

我也找到了这个link http://andyshora.com/promises-angularjs-explained-as-cartoon.html

当我们有 .then 时解释 return 但它不适用于 allDocs

我假设您执行以下操作:

var result = db.allDocs({include_docs: true}).then(function (result) {
    return result.rows;
});

console.log(result); // I expect to see rows here

这将不起作用,因为 result 不是行 - 它是获取行的 承诺。实际结果将在稍后以异步方式到达那里。

因此,如果您在某些功能或服务中执行此操作,并且您执行了 return result,该功能的使用者仍然需要执行 .then。这就是我的意思:

function getRows(){
  var result = db.allDocs({include_docs: true}).then(function (result) {
        return result.rows;
  });

  return result;
}

getRows().then(function(rows){
   console.log(rows); // actual rows
})