所以我有终点功能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

倚天杖
TA贡献1828条经验 获得超3个赞
api.listAssignedDevices
必须是一个以vehicleId
参数为参数,执行网络请求并返回结果的函数。从您的示例中,它只是一个从 vehicleId 构造 url 但不执行网络请求的函数
const listAssignedDevices = vehicleId => fetch(`vehicle/${vehicleId}/devices`)
添加回答
举报
0/150
提交
取消