ember.js 如何在ember中创建基于承诺的操作(而不是sendAction)?

jk9hmnmh  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(201)

我有一个用例,其中操作应该从另一个组件获取值,基于此,我需要执行一些操作。最初,我使用sendAction(而不是promiseAction())来执行一些操作。但是closeDataModal()在完成sendAction后立即运行。我希望第一个函数完成,然后运行第二个函数。

saveAction() {
  promiseAction()
  closeDataModal() -> Run after resolving the promiseAction
}
uoifb46i

uoifb46i1#

使用异步函数,以便可以像异步操作一样等待异步操作。

async saveAction() {
   await promiseAction()
   closeDataModal() -> will run after resolving the promiseAction
}

如果要使用promiseAction的结果,请执行以下操作:

async saveAction() {
   let result = await promiseAction()
   closeDataModal(result) -> will run after resolving the promiseAction
}

正如注解中提到的,这将不适用于已弃用的sendAction。
有关async/await如何工作以及如何进行错误处理的更多信息,请参见https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Statements/async_function

相关问题