我正在使用路由的加载子状态向用户显示某些网络流量正在发生。如下所述:https://guides.emberjs.com/v2.4.0/routing/loading-and-error-substates/ember promise - 使用模型钩优雅地处理失败的承诺
除了在模型钩子中加载模型外,我还会在路由初始化阶段保存更改。我在后模式中这样做。 事情是这样的:
afterModel() {
var session = this.get('session');
return session.SaveAnyUnsavedObjects();
},
//session.js
SaveAnyUnsavedObjects: function() {
var promises = [];
...
activities.forEach(function(activity) {
if(activity.get('hasDirtyAttributes')) {
promises.pushObject(activity.save());
}
}
if(promises.get('length') > 0)
{
// Use RSVP.Promise.allSettled() to resolve an array of promises.
return Ember.RSVP.allSettled(promises);
}
}
这种运作良好,在大多数情况下。当我的一些或全部承诺失败时,可能由于脱机而出现问题。所以我想为我的承诺添加一个“then”处理程序,因此可以在承诺完成时执行一些代码。我怎样才能添加一个后处理程序,并同时保持加载子状态?
换句话说,我怎么可以返回一个承诺模式钩或aftermodel钩只要Ajax调用开始,并在同一时间有一个处理的承诺的结果代码?
真的吗?这比我想象的要容易。谢谢! –