【问题标题】:How to wait till PouchDB successfully connects如何等待 PouchDB 成功连接
【发布时间】:2015-07-21 11:34:25
【问题描述】:

我在客户端使用 pouchdb(离子移动应用程序)在服务器端使用 couchdb。

pouchdb创建成功并与couchdb同步后,我需要进行操作。

那么我怎样才能等到 pouchdb 完成初始活动。然后才应该开始我的客户端执行。

目前 pouch 正在以异步方式工作,所以在 pouch 初始化之前的某个时间,我的应用程序开始执行,我收到 pouchdb 错误。

【问题讨论】:

  • 您是否尝试过使用 .then。所以说你有 $scope.connect = function(){ var req = {options}; $http(req).success(callback).error(callback).then(callback) } .then 回调函数将在所有数据成功返回并且成功和错误都运行后才会运行。查看更多信息peterbe.com/plog/promises-with-$http
  • 谢谢 jess,好的,那么我需要将所有代码放入然后我想在 pouchdb 连接后执行的块中。对吗?
  • 是的,应该可以。这是一个例子。 db.get('mittens').then(function (doc) { // 好的,doc 包含我们的文档 }).catch(function (err) { // 哦不!我们遇到了错误 });
  • 与 Angular 类似,它使用承诺系统。你可以在这里读更多关于它的内容。 pouchdb.com/guides/async-code.html
  • 希望能成功。我将此方法与 mongodb 一起使用,但我认为它应该可以工作

标签: ionic-framework pouchdb


【解决方案1】:

在处理异步函数时,例如在 JavaScript 中等待来自服务器的响应,您使用承诺或回调来等待响应。

pouchdb docs 我们可以看出它们提供了完全异步的 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
});

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2020-08-14
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 2021-01-23
    • 1970-01-01
    相关资源
    最近更新 更多