等待2个方法完成Angular 6
Wait for 2 methods to complete Angular 6
我有两种方法 return 两个不同的数组使用服务逻辑中提供的 REST 请求:
cartItemNodes: TreeNode[] = [];
cartGroupNodes: TreeNode[] = [];
getCartItems(){
//subscribe to service observable filling the array
return this.cartItemNodes;
}
getCartGroups(){
//subscribe to service observable filling the array
return this.cartGroupNodes;
}
如何构建第三种方法
getCartFinalNodes()
哪个等到第一个两个完成,然后将它们的结果合并到一个数组中?
getCartFinalNodes(){
//wait for first 2 methods
return this.cartItemNodes.concat(this.cartGroupNodes);
}
首先 return 从你的两种方法中承诺然后使用 Promise.all
如下
Promise.all([
firstMethod(key1),
seondMethod(key2),
]).then(value => thirdMethod());
使用 Promise API :
getCartItems() {
return new Promise((resolve, reject) => {
resolve(this.cartItemNodes);
});
}
getCartGroups() {
return new Promise((resolve, reject) => {
resolve(this.cartGroupNodes);
});
}
Promise.all([
this.getCartItems(),
this.getCartGroups(),
]).then(value => this.getCartFinalNodes());
我有两种方法 return 两个不同的数组使用服务逻辑中提供的 REST 请求:
cartItemNodes: TreeNode[] = [];
cartGroupNodes: TreeNode[] = [];
getCartItems(){
//subscribe to service observable filling the array
return this.cartItemNodes;
}
getCartGroups(){
//subscribe to service observable filling the array
return this.cartGroupNodes;
}
如何构建第三种方法
getCartFinalNodes()
哪个等到第一个两个完成,然后将它们的结果合并到一个数组中?
getCartFinalNodes(){
//wait for first 2 methods
return this.cartItemNodes.concat(this.cartGroupNodes);
}
首先 return 从你的两种方法中承诺然后使用 Promise.all
如下
Promise.all([
firstMethod(key1),
seondMethod(key2),
]).then(value => thirdMethod());
使用 Promise API :
getCartItems() {
return new Promise((resolve, reject) => {
resolve(this.cartItemNodes);
});
}
getCartGroups() {
return new Promise((resolve, reject) => {
resolve(this.cartGroupNodes);
});
}
Promise.all([
this.getCartItems(),
this.getCartGroups(),
]).then(value => this.getCartFinalNodes());