Angular 向所有人承诺
我试图使用带有两个列表的promise all,但没有得到所需的值: 只有一个列表,它就可以工作: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(
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 => {});