Ember.js 一次解决相互依赖的多个承诺
我正在使用的将显示一个微调器,直到行动承诺解决Ember.js 一次解决相互依赖的多个承诺,ember.js,Ember.js,我正在使用的将显示一个微调器,直到行动承诺解决 {{async-button action=(action "save" model) default="Save" pending="Saving..."}} actions: { save(model) { cont promise = model.save(); promise.then(() => { const promises = []; model.get('subModels')
{{async-button action=(action "save" model) default="Save" pending="Saving..."}}
actions: {
save(model) {
cont promise = model.save();
promise.then(() => {
const promises = [];
model.get('subModels').forEach((subModel) => {
promises.pushObject(subModel.save());
});
return Ember.RSVP.all(promises);
});
return promise;
}
}
在我的情况下,我不能开始孩子的承诺,直到父母的承诺已经解决
这不起作用,一旦父承诺解决,微调器将停止
{{async-button action=(action "save" model) default="Save" pending="Saving..."}}
actions: {
save(model) {
cont promise = model.save();
promise.then(() => {
const promises = [];
model.get('subModels').forEach((subModel) => {
promises.pushObject(subModel.save());
});
return Ember.RSVP.all(promises);
});
return promise;
}
}
考虑到一些承诺依赖于其他承诺的完成,我如何保持一个长期承诺一直持续到所有依赖承诺完成为止
在所有依赖的承诺完成之前,我如何保持一个长期的承诺
最初的承诺在解决时解决(当顶级保存完成时),您不能“让它继续运行”。您需要返回保存所有子模型的承诺
return promise.then(() => {
const promises = [];
model.get('subModels').forEach((subModel) => {
promises.pushObject(subModel.save());
});
return Ember.RSVP.all(promises);
}
或者更简单地说,使用map
:
return promise.then(() =>
Ember.RSVP.all(model.get('subModels').map(subModel => subModel.save()));
在所有依赖的承诺完成之前,我如何保持一个长期的承诺
最初的承诺在解决时解决(当顶级保存完成时),您不能“让它继续运行”。您需要返回保存所有子模型的承诺
return promise.then(() => {
const promises = [];
model.get('subModels').forEach((subModel) => {
promises.pushObject(subModel.save());
});
return Ember.RSVP.all(promises);
}
或者更简单地说,使用map
:
return promise.then(() =>
Ember.RSVP.all(model.get('subModels').map(subModel => subModel.save()));
您的问题很简单,
返回promise
而不是返回promise的结果。然后(…)
您的问题很简单,
返回promise
而不是返回promise的结果。然后(…)