在序列中调用 React js Fetch 调用
Posted
技术标签:
【中文标题】在序列中调用 React js Fetch 调用【英文标题】:Calling React js Fetch Calls In a Sequence 【发布时间】:2020-11-28 12:52:35 【问题描述】:有人,请帮我一个接一个地调用这些 fetch Api,因为我正在使用存储在后端的数据来处理我的下一个请求。我希望以这种方式依次调用它们一个完整然后下一个请求。
Promise.all([
fetch(`http://localhost:5000/zoomapi`,
requestOptions),
fetch('http://localhost:5000/getId')
.then((res) => res.json())
.then((result) =>
this.setState( zoomid: result );
),
fetch(`http://localhost:5000/users/zoom?name=$this.state.zoomid`)
.then((res) => res.json())
.then((result) =>
this.setState( zoomdata: result );
)
])
.catch((error) =>
this.setState( error );
);
)
【问题讨论】:
【参考方案1】:.setState
不是同步操作,所以不能用const id = this.state.zoomid
,可以用result
代替。此外,你的承诺应该是链式的,而不是嵌套的。示例:
fetch('http://localhost:5000/getId')
.then((res) => res.json())
.then((result) =>
this.setState( zoomid: result );
return fetch(`http://localhost:5000/users/zoom?name=$result`);
)
.then((res) => res.json())
.then((result) =>
this.setState( zoomdata: result );
)
.catch((error) =>
this.setState( error );
);
【讨论】:
对不起,如果我不清楚我的问题。但是我在上述两次提取之前调用了一次提取,其中我更新了节点后端中的变量,当我使用“/getId”时,我想要更新的变量 id,我仍然得到旧的临时变量。所以请帮忙。感谢您的承诺建议,我已经进行了更改而不是嵌套。以上是关于在序列中调用 React js Fetch 调用的主要内容,如果未能解决你的问题,请参考以下文章
如何在带有 Jest 的 react-native 中使用模拟的 fetch() 对 API 调用进行单元测试
Fetch API 无法加载“.php”本地文件 - React JS + PHP