Все привет.
Есть пример сетевых запросов.
Логика следующая, например, в запросе getUser ожидается ответ от запроса getAuth.
Пример реализации:
const getAuth = () => fetch('https://jsonplaceholder.typicode.com/users/1');
const getUser = (t) => fetch(`https://jsonplaceholder.typicode.com/users/${t}`);
function getOrder(t, id) {
// return fetch(`https://jsonplaceholder.typicode.com/${t}/${id}`);
return fetch(`https://jsonplaceholder.typicode.com/FAILED/${id}`);
}
const request = async () => {
let res = {};
try {
const response = await getAuth();
const auth = await response.json();
console.log('auth', auth);
res.auth = auth.id;
} catch (e) {
console.log(e);
}
try {
const response = await getUser(res.auth);
const user = await response.json();
console.log('user', user);
res.user = user;
} catch (e) {
console.log(e);
}
try {
const response = await getOrder('users', res.auth);
const order = await response.json();
console.log('order', order);
res.order = order;
} catch (e) {
console.log(e);
}
return res;
}
request().then((result) => {
console.log('result', result);
});
Подскажите, пожалуйста, возможна ли реализация данной логики с помощью Promise.allSettled?
Promise.allSettled([getAuth(), getUser()])
.then(results => {
console.log(results);
results.forEach((result, num) => {
if (result.status === "fulfilled") {
console.log(result.value.body);
console.log(result.value.status);
}
if (result.status === "rejected") {
console.log(result.reason);
}
});
});