Tach!
var aRequest = new Request('a.json'); var bRequest = new Request('b.json'); var aPromise = fetch(aRequest).then(function (response) { return response.json(); }) var bPromise = fetch(bRequest).then(function (response) { return response.json(); }) Promise.all([aPromise, bPromise]).then(function (values) { var aData = values[0]; var bData = values[1]; // do something with aData and bData });
Du kannst auch noch die beiden ersten then()s einsparen. DRY statt WET. response.json() ist kein asynchroner Prozess. Das kann auch im then() vom Promise.all() ausgeführt werden.
Promise.all([aPromise, bPromise]).then(function (responses) {
var aData = responses[0].json();
var bData = responses[1].json();
// do something with aData and bData
});
oder wenn es separat sein soll
Promise.all([aPromise, bPromise]).then(function (responses) {
var values = responses.map(function (response) { return response.json(); });
// modern: const values = responses.map(response => response.json());
// oder: const [aValue, bValue] = responses.map(response => response.json());
var aData = values[0];
var bData = values[1];
// do something with aData and bData
});
dedlfix.