Angular 向所有人承诺

Angular 向所有人承诺,angular,angular2-services,angular-promise,Angular,Angular2 Services,Angular Promise,我试图使用带有两个列表的promise all,但没有得到所需的值: 只有一个列表,它就可以工作: this.firstService.getAll() .then(dataR => { //dataR = ['data':{'data1': 'one-one', 'data2': 'one-two'}, // 'data':{'data1': 'two-one', 'data2': 'two-two'}] return Promise.all(

我试图使用带有两个列表的promise all,但没有得到所需的值:

只有一个列表,它就可以工作:

this.firstService.getAll()
  .then(dataR => {
      //dataR = ['data':{'data1': 'one-one', 'data2': 'one-two'},
      //   'data':{'data1': 'two-one', 'data2': 'two-two'}]
      return Promise.all(
        dataR.data1.map(x =>
          this.secondService.getReadURL(
            x.one))
    }
  ).then(dataR2 => {
     //dataR2 is a list of strings
  });
现在,我正在尝试使用data2添加第二个呼叫:

 return Promise.all(
        [dataR.data.map(x =>
          this.secondService.getReadURL(
            x.data1)),
        dataR.data.map(x =>
          this.secondService.getReadURL(
            x.data2))]

    }
  ).then(dataR2 => {
     //dataR2 is a list of list of zoneAwarePRomise
  });

如何获取字符串列表列表?

试试这个,Promise。所有人都接受Promise数组
[Promise]
,但您正在发送
[[Promise],[Promise]]

var promises = dataR.data.map(x =>
    this.secondService.getReadURL(
        x.data1));

promises = promises.concat(dataR.data.map(x =>
    this.secondService.getReadURL(
        x.data2)));

return Promise.all(promises).then(data => {});