На самом деле вы можете использовать деструкцию в es6 здесь. Так как ваш Promise.all(...)
будет преобразован в массив с тремя элементами, вы можете иметь [first, second, third]
в качестве параметра для функции стрелки, и JavaScript будет выделять элементы из их места в массиве и устанавливать их в переменные с соответствующими имена (то есть first
, second
и third
в данном случае).
Кроме того, если вы оставите имя переменной таким же, как имя свойства для объекта, вы можете использовать сокращенный синтаксис ниже для создания объекта.
resolve(route: ActivatedRouteSnapshot): Promise<any> {
return Promise.all([
this.service1.getAll(),
this.service2.getAll(),
this.service3.getAll()
]).then(([first, second, third]) => ({ first, second, third }));
}
Для справки, TypeScript переносит код в .then(...)
в следующий es5 JavaScript:
.then(function (_a) {
var first = _a[0], second = _a[1], third = _a[2];
return ({ first: first, second: second, third: third });
})