javascript - 如何在redux saga中获取具有不同参数的端点
问题描述
所以我有终点功能
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 listAssignedDevices
export 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))
}
但响应未定义,我想知道如何使用不同的参数进行多次调用。
解决方案
我通过 yield all 来解决我的问题
const response = yield all(
listVehicleId.map(vehicleId =>
call(api.listAssignedDevices, vehicleId)
)
)
由此
https://github.com/redux-saga/redux-saga/issues/1800#issuecomment-468627409