javascript - pouchdb 向 fancytree promise

标签 javascript promise pouchdb fancytree

我试图向 fancytree 的源选项提供 promise 。这个 Promise 应该做 4 件事:

  1. 从 pouchdb 数据库获取文档(使用 Promise allDocs())
  2. 从数据库内容同步生成树根
  3. 订阅数据库中的更改(使用changes() feed)
  4. 将 2. 中的树根返回到源。

我显然做错了什么。 Promise 的第 1 部分和第 2 部分正在执行,但其余部分将被忽略。我怀疑我误解了混契约(Contract)步和异步行为的 promise 链。我欢迎对我做错的地方提出建议。

所以本质上这是我的代码:

$(function(){
    $("#tree").fancytree(
        source: function fetchDocsAndSubscribe () {
            return pouch.allDocs({...})
            .then (function (docs) {
                return generateRootNodes (docs) // sync
            })
            .then (function (rootNodes) {
                pouch.changes({live: true,....})
                .on('change', function (change) {
                    onChange (change);
                })
                .on('error', function (error) {
                    console.log("Change error: " + error);
                });
                return rootNodes;
            })
            .catch(function (err) {console.log('error: ' + err);
                return;
            })
        }
    )

最佳答案

抱歉 - promise 链很好。我的generateRootNodes 函数出现错误,导致 promise 链中止

关于javascript - pouchdb 向 fancytree promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063472/

相关文章:

javascript - 如何使用 Angular Material 的 $mddialog 服务中的 typescript 在 IDialogOptions 中设置解析签名

javascript - 为什么 JavaScript Promise Catch 没有被触发

angularjs - 离线 Firebase

couchdb - 如何使用 .net 拦截从 PouchDB 到 CouchDB 的调用

cordova - 如何通过 Wi-Fi 在设备之间同步 PouchDB?

javascript - Chartjs 条形图按标签对数据集进行分组

javascript - 取消选中父上下文中的复选框

javascript - 与 ascx 控件一起使用时无法运行 javascript

Javascript 的 future 会完成吗?

node.js - 处理 promise 库中的简单值拒绝