我有两种方法,使用服务逻辑中提供的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);
}

最佳答案

首先从您的两种方法中返回承诺,然后使用Promise.all如下

  Promise.all([
   firstMethod(key1),
   seondMethod(key2),
  ]).then(value => thirdMethod());

10-06 03:52