Redux saga saga中API调用的结果为空
我有一个Redux传奇,它通过一个自定义库调用API端点(GET),该库返回一个包含Redux saga saga中API调用的结果为空,redux-saga,Redux Saga,我有一个Redux传奇,它通过一个自定义库调用API端点(GET),该库返回一个包含请求的承诺。使用Superagent库获取。当我在我的React应用程序中发出此请求时,Chrome dev tools会显示正确发出的请求和响应,但是在发出此GET后,saga中的response对象为空。我在StackOverflow上看到过类似的问题,解决方案(“解决方案”)是让saga调用一个新函数,然后调用API端点。这并没有解决我的问题 function* exportFile({ payload }
请求的承诺。使用Superagent库获取。当我在我的React应用程序中发出此请求时,Chrome dev tools会显示正确发出的请求和响应,但是在发出此GET后,saga中的response
对象为空。我在StackOverflow上看到过类似的问题,解决方案(“解决方案”)是让saga调用一个新函数,然后调用API端点。这并没有解决我的问题
function* exportFile({ payload }) {
try {
const response = yield call(getFile, payload);
console.log(response); // null
} catch (err) {
console.log(err);
}
}
export function getFile(data) {
return ajaxClient.get({
url: '/api/getFile',
data
});
}
有效负载在GET中正确发送,后端接收参数并发送正确的响应。由于Chrome dev tools正确显示了请求和响应,我认为问题在于,在Chrome dev tools在网络选项卡中显示响应之前,null
的响应被记录到控制台,因此不等待响应返回 这个问题与Redux传奇无关,这是ajaxClient库的问题,它需要JSON而不是文件或字符串 如果执行getFile(有效负载)。然后执行(response=>console.log(response))
,则会记录哪些内容?当然,它也是空的。我确信它会返回响应字符串。因此,这表明代理调用存在问题。