pouchdb обещают фантазии дерево - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь дать обещание исходной опции fancytree. Обещание должно делать 4 вещи:

  1. Получить документы из базы данных pouchdb (используя обещание allDocs ())
  2. Генерация корней деревьев из содержимого БД - синхронно
  3. Подписаться на изменения в БД (с помощью изменения ())
  4. вернуть корни дерева из 2. в источник.

Я явно что-то делаю не так. Части 1 и 2 обещания выполняются, а остальное игнорируется. Я подозреваю, что неправильно понял цепочку обещаний со смешанным синхронным и асинхронным поведением. Я бы приветствовал предложения относительно того, что я делаю неправильно.

Так что по сути это мой код:

$(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;
            })
        }
    )

1 Ответ

0 голосов
/ 27 апреля 2018

Извинения - цепочка обещаний была в порядке. У меня была ошибка в моей функции generateRootNodes, которая прерывала цепочку обещаний

...