如何使用 redux-auto 读取端点

How to read from to end-points with redux-auto

我正在使用 redux-auto 但在 "init" (point 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

感谢您的帮助

您需要在操作函数中处理每个提取。如果您有一组网址,您可以使用 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}))

}

以上代码为

  1. 映射端点字符串以创建您的 Ajax 调用
  2. 对每次获取的结果调用 json
  3. 然后使用 Promise.all
  4. 合并所有响应
  5. 将数组析构为 2 个变量
  6. Return 具有 2 个属性的新对象

result 在你的 reduct 函数中现在有 userData, config