javascript - JavaScript React async/await 返回错误的正文?
问题描述
我是 React 新手,正在尝试使用Java REST后端的 UI 项目。
我在开发工具窗口中看到了非常疯狂的事情。
每隔几次刷新,loadedFilesList
从 /splitFiles 调用中获取数据。
我已经确认REST服务可以正常工作。如果我在下面突出显示的行上调试并暂停,则body2
包含只能来自response1
.
发生了什么异步废话?
state = {
splitFilesList: [],
loadedFilesList: []
}
logFields = () => {
console.log('Vars', `${this.state.loadedFilesList}`)
}
async asyncGetSplitFiles()
{
let response1 = await fetch('/splitFiles');
let body1 = await response1.json();
this.setState({ splitFilesList: body1.files }, () => {this.logFields()});
}
async asyncGetLoadedFiles()
{
let response2 = await fetch('/loadedFiles');
let body2 = await response2.json(); <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
this.setState({ loadedFilesList: body2.files }, () => {this.logFields()});
}
async componentDidMount() {
this.asyncGetSplitFiles();
this.asyncGetLoadedFiles();
}
解决方案
好吧,我修好了。虽然不明白为什么。
async componentDidMount() {
await this.asyncGetSplitFiles();
await this.asyncGetLoadedFiles();
}
推荐阅读
- java - ResultSet.updateRow() 是否提交,即结束事务?
- amazon-web-services - 从弹性搜索中删除元素时清除滚动
- java - 与超类中的“this”不一致
- git - 将两个 git 存储库与所有历史记录和所有分支合二为一
- swift - 如何在 SwiftUI 中追加到数组?
- ios - 快速错误:无法转换“UnsafeMutablePointer”类型的值
?到预期的参数类型'UnsafeMutablePointer ? - python - Python 3 偶尔会在换行符上拆分 argv
- python-3.x - 用两个自变量计算 numpy 数据的最有效方法
- c - 如何使用 MSYS2 和 Mingw-W64 使 GTK+ 3.0 信号处理程序在 Windows 10 上工作?
- mongodb - 数字 1 或 -1 在字符串字段的索引中意味着什么?