как включить прослушиватель событий в пакете ibm-cloud/cloudant?

avatar
Kopal Kothari
9 августа 2021 в 00:12
51
1
0

Устаревший пакет @cloudant/cloudant заменен пакетом ibm-cloud/cloudant. Раньше я использовал следующий фрагмент кода

const feed = dummyDB.follow({ include_docs: true, since: 'now'})

feed.on('change', function (change) {
     console.log(change)
   })
feed.on('error', function (err) {
     console.log(err)
})

feed.filter = function (doc, req) {
     if (doc._deleted || doc.clusterId === clusterID) {
       return true
     }
     return false
   }

Не могли бы вы поделиться кодом, для которого я могу получить прослушиватель событий feed.on, аналогичный приведенному выше коду, в новом пакете npm ibm-cloud/cloudant.

Источник

Ответы (1)

avatar
ricellis
11 августа 2021 в 15:50
0

Сейчас нет генератора событий для изменений в пакете @ibm-cloud/cloudant. Вы можете эмулировать поведение одним из следующих способов:

polling postChanges (updating the since value after new results) and processing the response result property, which is a ChangesResult. Это, в свою очередь, имеет свойство results, представляющее собой массив элементов ChangesResultItem, каждый из которых эквивалентен аргументу change функции обработчика событий.

или

вызвать postChangesAsStream с типом фида continuous и обработать свойство stream, возвращаемое в ответе result, каждая строка которого представляет собой объект JSON со структурой ChangesResultItem. В этом случае вы, вероятно, также захотите настроить пульс и время ожидания.

В обоих случаях вам потребуется обрабатывать ошибки для повторного подключения в случае сетевых сбоев и т. д.