punchDB / allDocs /。然后返回一个值

时间:2015-05-12 17:23:00

标签: javascript angularjs pouchdb

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

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

memset(player_list, 0, sizeof(player_list));

但我想返回" result.rows"

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

是的,我可以跳过 .then

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

但这是一个复杂的输出

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

当我们 .then 时,

解释返回,但它不适用于 allDocs

1 个答案:

答案 0 :(得分:0)

我假设你做了类似以下的事情:

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
})