Как дождаться успешного подключения PouchDB

Я использую pouchdb на стороне клиента (мобильное приложение ionic), а на стороне сервера — Couchdb.

Мне нужно выполнить операцию после успешного создания pouchdb и синхронизации с coachdb.

так как я могу дождаться, пока pouchdb завершит начальную активность. Затем должно начаться выполнение только моей клиентской стороны.

в настоящее время pouch работает асинхронно, поэтому незадолго до инициализации pouch мое приложение начинает выполнение, и я получаю сообщение об ошибке для pouchdb.


person Bhavesh Jariwala    schedule 11.05.2015    source источник
comment
Вы пытались использовать .then. скажем, у вас есть $scope.connect = function(){ var req = {options}; $http(req).success(callback).error(callback).then(callback) } Функция обратного вызова .then не будет запущена до тех пор, пока все данные не будут успешно возвращены, а также не будут выполнены успех и ошибка. Проверьте это для получения дополнительной информации peterbe.com/plog/promises-with-$http< /а>   -  person Jess Patton    schedule 29.05.2015
comment
Спасибо, Джесс, хорошо, тогда мне нужно поместить весь код в блок then, который я хочу выполнить после подключения pouchdb. правильно?   -  person Bhavesh Jariwala    schedule 02.06.2015
comment
ага, должно работать. Вот пример. db.get('mittens').then(function (doc) { // хорошо, doc содержит наш документ }).catch(function (err) { // о нет! мы получили ошибку });   -  person Jess Patton    schedule 02.06.2015
comment
Надеюсь, это сработает. Я использую этот метод с mongodb, но я думаю, что он должен работать   -  person Jess Patton    schedule 02.06.2015


Ответы (1)


При работе с асинхронными функциями, такими как ожидание ответа от сервера в JavaScript, вы используете обещания или обратные вызовы для ожидания ответа.

из документов pouchdb мы можем прочитать, что они предоставляют полностью асинхронный API .

Версия обратного вызова:

db.get('mittens', function (error, doc) {
  if (error) {
    // oh noes! we got an error
  } else {
    // okay, doc contains our document
  }
});

Обещаемая версия:

db.get('mittens').then(function (doc) {
  // okay, doc contains our document
}).catch(function (err) {
  // oh noes! we got an error
});
person eikooc    schedule 30.09.2015