为了账号安全,请及时绑定邮箱和手机立即绑定

如何在redux saga中获取具有不同参数的端点

如何在redux saga中获取具有不同参数的端点

Cats萌萌 2022-06-05 15:54:07
所以我有终点功能import AppConfig from "../config/app-config";const create = (baseURL = AppConfig.apiUrl) => {  const api = apisauce.create({    baseURL,    headers: {      "Cache-Control": "no-cache"    },    timeout: 10000  });const listAssignedDevices = vehicleId =>    api.get(`api/fleet/vehicle/${vehicleId}/devices`) return listAssignedDevicesexport default create已编辑我尝试使用数组调用该端点作为 redux-saga 中的参数列表我已经尝试使用像redux-saga 中的 map 函数:如何以编程方式创建多个调用/副作用以获得收益?const listVehicleId = [1,2,3,4,5,6,7]const response = yield listVehicleId.map(vehicleId => call(api.listAssignedDevices, vehicleId)console.log(response)if (response.ok && response.headers['content-type'].indexOf('json') !== -1) {    console.tron.log('AturBcak - OK')    yield put(AturBcakActions.aturBcakMultipleSuccess(response.data))  }但响应未定义,我想知道如何使用不同的参数进行多次调用。
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

我通过 yield all 来解决我的问题


const response = yield all(

    listVehicleId.map(vehicleId => 

      call(api.listAssignedDevices, vehicleId)  

    )

  )

由此


https://github.com/redux-saga/redux-saga/issues/1800#issuecomment-468627409


查看完整回答
反对 回复 2022-06-05
?
倚天杖

TA贡献1828条经验 获得超3个赞

api.listAssignedDevices必须是一个以vehicleId参数为参数,执行网络请求并返回结果的函数。从您的示例中,它只是一个从 vehicleId 构造 url 但不执行网络请求的函数

const listAssignedDevices = vehicleId => fetch(`vehicle/${vehicleId}/devices`)



查看完整回答
反对 回复 2022-06-05
  • 2 回答
  • 0 关注
  • 107 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号