Yield 不会停止 ember 并发任务中的流程

if (isEmpty(contact) || isEmpty(get(contact, 'emails'))) {

  contact = yield store.findRecord('contact', contactId);

}


if (isEmpty(contact) || isEmpty(get(contact, 'emails'))) {

  flashMessages.danger(i18n.t('email.cpq_document_email_missing'));

  return false;

}

当承诺正在运行并且我收到错误时,第二个块就会运行。在承诺得到解决之前,它不应该停止流程吗?


Promise 运行良好,下次也能正常工作


肥皂起泡泡
浏览 102回答 1
1回答

qq_花开花谢_0

假设您正在使用,您可能会遇到返回缓存记录的ember-data情况。findRecord这取决于您是否已经加载了记录(可能是从上一个路由findRecord,findAll或者query在另一个路由上,以及ember-data适配器的配置方式:shouldBackgroundReloadRecord和shouldBackgroundReloadAll是适配器上默认返回 的方法true。当这些方法返回 时true,缓存的记录会立即被加载返回,但在“后台”再次获取记录。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript