Как читать с конечных точек с помощью redux-auto
Я использую redux-auto, но в "init" (пункт 5) я хочу достичь двух конечных точек Api. Документация не распространяется на этот случай.
Есть пример
export default function (user, payload, stage, result) {
switch(stage){
case 'FULFILLED':
return ?? result.config + result.userData ??
break;
case 'REJECTED':
console.error("problem loading user from server",result)
break;
case 'PENDING':
default :
break;
}
return user;
}
export function action (payload){
var endpoints = ['//localhost:3000/api/users/507f191e810c19729de860ea',
'https://api.mysite.com/users/settings/8B76YUTBI']
return fetch( ? )
}
Как я могу назвать две конечные точки, когда это займет всего 1 обещание?
Я работаю на примере, где они загружают пользователя из API https://github.com/codemeasandwich/redux-auto/tree/master/example
Спасибо за любую помощь
1 ответ
Решение
Вы должны обрабатывать каждый выбор в пределах своей функции действия. Если у вас есть массив URL-адресов, вы можете использовать map для преобразования каждого из них для получения вызовов.
export function action (payload){
var endpoints = ['//localhost:3000/api/users/507f191e810c19729de860ea',
'https://api.mysite.com/users/settings/8B76YUTBI']
return Promise.all(endpoints.map(url => fetch(url).then(resp => resp.json())))
.then(([userData,config])=>({userData,config}))
}
Код выше
- Сопоставьте строку конечных точек для создания вызовов Ajax
- Вызовите json по результатам каждой выборки
- Затем объедините все ответы, используя Promise.all
- Разрушить массив на 2 переменные
- Вернуть новый объект с 2 свойствами
в результате у тебя редукционная функция теперь будет иметь userData, config