redux-saga - 在 saga 中进行的 API 调用的结果为空
问题描述
我有一个 Redux Saga,它通过自定义库调用 API 端点 (GET),该库返回包含request.get
使用 Superagent 库的承诺。当我在我的 React 应用程序中发出此请求时,Chrome 开发工具会显示正确发出的请求和响应,但是在response
发出此 GET 后 saga 中的对象为空。我在 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
});
}
Payload 在 GET 中正确发送,后端接收参数并发送正确的响应。由于 Chrome 开发工具正确显示请求和响应,我认为问题与 Saga 不等待响应返回有关,因为null
在 Chrome 开发工具在“网络”选项卡中显示响应之前,响应已记录到控制台.
解决方案
这个问题与 Redux Saga 无关,这是 ajaxClient 库的问题,它需要 JSON 而不是文件或字符串。
推荐阅读
- ios - UIViewRepresentable 隐藏在 SwiftUI 视图后面
- machine-learning - DiffEqFlux 中的 FastChain 与 GPU
- parsing - 如何在 PHP-Parser 中隐藏属性
- git - 恢复 git 存储库历史并将其添加到现有的
- php - 如何从私有函数接收并使用 if 语句在另一个函数中运行
- javascript - 从 Jitsi 收集统计数据
- javascript - Eloquent JavaScript 第 3 版第 5 章练习 3
- python - 将三个 csv/xls 文件拉入数据帧会导致其中一个文件找不到
- javascript - 使用 Handlebar.js 模板为多个按钮添加 onclick 事件监听器,只有最后一个有效
- python - python中的非正统链表