in meinem Route-Modell muss ich zwei Anfragen senden (vorherige und neueste) und auf die Antwort ich ergreife ihre IDs zu senden zwei andere Anfragen (baslineCpature und currentcapture). Wenn ich die Antworten beider Anfragen erhalten habe, muss ich zwei weitere Anfragen senden (fiberHealthData, wavensesPerSectionData). ember-Modell sollte zurückgeben (baslineCpature, currentcapture, fiberHealthData, wavelengthPerSectionData). ein Problem, das ich hier habe, ist, dass ich meine Vorlage aktualisieren möchte, sobald ich Antwort für baslineCpature und currentcapture bekomme.Verschachtelte Versprechen und die Rückgabe in der Route wird nicht aktualisiert das Routenmodell und die Vorlage mit diesem Modell
Hier ist mein Code. Ich schätze es, wenn mir jemand sagen kann, was ich falsch mache.
model: function (params,transition) {
var promiseA=null;
var promiseB=null;
var promiseA1=null;
var promiseB1=null;
promiseA1 = Ember.RSVP.hash({
latest:this.store.findAll('latest'),
previous: this.store.findAll('previous'),
});
promiseA= promiseA1.then((promiseAResolved) => {
return Ember.RSVP.hash({
baselineCapture:self.store.find('capture', promiseAResolved.previous.get('firstObject.id')),
currentCapture: self.store.find('capture', promiseAResolved.latest.get('firstObject.id')),
});
});
promiseB= promiseA.then((promiseAResolved) => {
baselineId = promiseAResolved.baselineCapture.id;
currentId = promiseAResolved.currentCapture.id;
return Ember.RSVP.hash({
fiberHealthData:self.store.findAll('fiber-health',{ adapterOptions: {current: currentId, baseline: baselineId}}),
wavelengthsPerSectionData:self.store.findAll('wavelengths-per-section',{ adapterOptions: {current: currentId, baseline: baselineId}})
});
});
//this should be retun of my model
return Ember.RSVP.hash({
baselineCapture:promiseA.baselineCapture,
currentCapture:promiseA.currentCapture,
fiberHealthData:promiseB.fiberHealthData,
wavelengthsPerSectionData:promiseB.wavelengthsPerSectionData,
});
}
Sie verwenden die Ergebnisse der 'promiseA' und' promiseB', bevor sie in Ihrem letzten Hash aufgelöst haben. – Kingpin2k