1
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 运行并且我收到错误时运行。在承诺得到解决之前,它不应该停止流程吗?

承诺运行良好,下次可以使用

4

1 回答 1

2

假设您正在使用ember-data,您可能会遇到findRecord返回缓存记录的情况。这取决于您是否已经加载了记录(可能来自上一个findRecordfindAll另一个query路由,以及ember-data适配器的配置方式:shouldBackgroundReloadRecord以及shouldBackgroundReloadAll适配器上默认为返回true的方法。当这些方法返回true时,缓存的记录立即返回,但在“背景”中再次获取记录。

于 2020-11-09T18:26:02.133 回答