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;
}
第二个块在承诺运行时运行并且我收到错误。在解决承诺之前,它不应该停止流动吗?
承诺运行良好,下次有效
假设您使用的是ember-data
,您可能会遇到findRecord
返回缓存记录的情况。这取决于您是否已经加载了记录(可能来自另一个路由上的前findRecord
、findAll
或query
,以及ember-data
适配器的配置方式:shouldBackgroundReloadRecord
和shouldBackgroundReloadAll
是适配器上默认返回true
的方法。当这些方法返回true
时,缓存的记录会立即返回,但记录会在"后台"中再次获取。