我对angular还是陌生的,我面临一个问题,我需要打电话给几个promise,并在继续进行之前获得所有结果。
// Let's assume this array is already populated
objects: any[];
// DB calls
insertObject(obj1: any): Promise<any> {
return this.insertDB('/create.json', obj1);
}
updateObject(obj: any): Promise<any> {
return this.updateDB('/update.json', obj);
}
// UI invokes this:
save(): void {
this.insertObject(objects[0])
.then((result) => {
console.log(result.data[0].id);
})
.catch((reason) => {
console.debug("[insert] error", reason);
});
this.insertObject(objects[1])
.then((result) => {
console.log(result.data[0].id);
})
.catch((reason) => {
console.debug("[insert] error", reason);
});
this.updateObject(objects[1])
.then((result) => {
console.log(result.data[0].status);
})
.catch((reason) => {
console.debug("[update] error", reason);
});
//I need to catch these 3 results in order to perform the next action.
}
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
使用语法Promise.all(iterable),可以执行Promises数组。当所有的诺言都得到解决时,此方法便会解决;如果其中的任何诺言都失败,则此方法会失败。
console.log(process.env.PORT) // undefined