Far*_*gho 3 javascript typescript angular
我的承诺遇到了一个小问题.
这是我的功能:
public generateMealPlanForAWeek(myMealProfile: any, totalCalories:number):Promise<any> {
return new Promise(resolve => {
let mealplan:Array<any> = [];
for (let i = 1; i <= 7; i++) {
this.generateMealPlanForOneDay(myMealProfile, totalCalories).then(data => {
mealplan.push(data); // resolves much later
});
}
resolve(mealplan); // is resolved instant
})
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,"generateMealPlanForOneDay"将在之后的膳食计划本身得到解决.
Mealplan是一系列物体(在这种情况下是用餐).
当我想保存我的膳食计划时,膳食计划是空的:
this.storage.set('Mealplan', JSON.stringify(mealplan)).then(....) // meal plan is Array[0]
Run Code Online (Sandbox Code Playgroud)
什么是解决我的膳食计划的所有膳食然后保存它的最佳方法?
你可以Promise.all在这种情况下使用.
public generateMealPlanForAWeek(myMealProfile: any, totalCalories:number):Promise<any> {
var mealPlans = [];
for (let i = 1; i <= 7; i++) {
mealPlans.push(this.generateMealPlanForOneDay(myMealProfile, totalCalories));
}
return Promise.all(mealPlans);
}
// later
generateMealPlanForAWeek(...).then(mealPlans => ...);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2515 次 |
| 最近记录: |