8
我想知道一般的请求传奇是否有意义?API请求的REDX传奇是否有意义?
这将需要一个REQUEST
行动,其中包含标题,网址,数据等所有信息,并将它与自己的标题和基本URL合并。 然后它会fetch
的请求,然后put(REQUEST_SUCCEEDED, json)
与商店中的json有效载荷。
const request = yield take(REQUEST)
const { url, data, headers } = request
try {
if (request.startAction) {
yield put(request.startAction)
}
const json = yield call(api.fetch, url, data, headers)
yield put({...request.successAction, json})
} catch (error) {
yield put({...request.errorAction, error})
}
据我所知,这将只允许在一个时间一个请求,所以不是调用API函数获取一个fork
会更好吗?
传奇还可以负责管理API access_token
,一旦它在响应头文件中遇到它并将其保存为所有后续请求。
function getAction(action) {
if (action) {
if (typeof action === "string") {
return { type: action }
} else {
return action
}
}
}
export function request(url, data, headers, actions) {
let result = {
type: REQUEST,
url, data, headers
}
actions[0] && result.startAction = getAction(actions[0])
actions[1] && result.successAction = getAction(actions[1])
actions[2] && result.errorAction = getAction(actions[2])
return result
}