【问题标题】:What is the syntax for await with an event handler for pouchdb?带有 pouchdb 事件处理程序的 await 的语法是什么?
【发布时间】:2019-09-27 16:43:45
【问题描述】:

我想使用 async/await 重写以下内容

db.replicate.from(remoteCouch).on(
  'complete', (info) => {
     db.sync(remoteCouch, { live: true, retry: true })
   })

如何使用 await 处理 on 事件?


var res = await db.replicate.from(remote)
res.on('complete',  (info) => {
   db.sync(remote, opts)
})

工作?

我需要对回调进行额外的 async/await 吗?

【问题讨论】:

  • 像任何其他回调函数一样将其包装在一个 Promise 中。

标签: javascript asynchronous pouchdb ecmascript-2016


【解决方案1】:

根据the documentationreplicate().from()返回的对象实际上满足Promise的接口。

通常,根据API Overview,通过 PouchDB 进行的 API 调用返回的对象可以像 Promise 一样工作:

如果您不指定回调,则 API 返回一个承诺。在 支持的浏览器或 Node.js,使用原生 Promise,回退 根据需要添加到最小库。

【讨论】:

  • 用你的回答扩展了问题
  • @sureshvv,看起来您正在使用complete 事件进行控制流,以便在您的replicate() 呼叫之后对您的db.sync() 呼叫进行排序。如果确实如此,您应该能够在致电db.replicate() 后运行db.sync() 和/或await
猜你喜欢
  • 1970-01-01
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多