
2个fetch顺序实行
回调函数中必须返回一个值,否则会抛出错误。 处理错误:在 fetch 调用中使用 try-catch 来处理网络请求失败的情况。 并行执行问题:如果需要串行执行,可在回调中将下一步的逻辑添加。
发布日期:2021-05-14 09:10:43
浏览次数:15
分类:精选文章
本文共 1166 字,大约阅读时间需要 3 分钟。
写前端代码时,有时候需要先执行更新操作再进行查询操作。然而,fetch API 是异步的,直接按顺序书写两个 fetch 可能会导致意想不到的结果,因为消息会被轮队处理,无法保证先更新后查询的顺序。
错误原因
当更新 fetch 需要更长时间完成时,即使将更新 fetch 放在查询 fetch 之前,两者仍然会并行执行。更新完成后才会处理查询,结果为先查询再更新,这与我们的预期相反。
解决方法
为了确保先更新后查询,可以将查询 fetch 放在更新 fetch 的回调函数 (then) 中。这样,更新操作完成后,才会执行查询操作。这意味着在回调中需要返回一个有意义的值来保持合法性。
实现步骤
具体实现如下:
async function updateData() { try { const response = await fetch('/update', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ some: 'data' }), }); // 必须返回合法的值 return response.json(); } catch (error) { console.error('更新失败:', error); return null; }}async function queryData() { try { const response = await fetch('/query', { method: 'GET', }); return response.json(); } catch (error) { console.error('查询失败:', error); return null; }}// 执行更新updateData().then((updateResult) => { // 执行查询 queryData().then((queryResult) => { console.log('更新成功后查询结果:', queryResult); });});
注意事项
通过以上方法,可以确保存在先更新后查询的顺序,同时保持代码的可读性和可维护性。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年05月05日 10时41分12秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
javaWeb服务详解(含源代码,测试通过,注释) ——Emp的Dao层
2019-03-11
java实现人脸识别源码【含测试效果图】——Dao层(IUserDao)
2019-03-11
使用ueditor实现多图片上传案例——前台数据层(Index.jsp)
2019-03-11
ssm(Spring+Spring mvc+mybatis)——saveDept.jsp
2019-03-11
解决Chrome播放视频闪屏黑屏无法播放
2019-03-11
Git简单理解与使用
2019-03-11
echarts 基本图表开发小结
2019-03-11
二分查找.基于有序数组的查找方法.704
2019-03-11
制作JS验证码(简易)
2019-03-11
adb通过USB或wifi连接手机
2019-03-11
泛型机制 Generic
2019-03-11
包装类
2019-03-11
JDK9-15新特性
2019-03-11
集合继承结构
2019-03-11
LinkedList 实现类
2019-03-11
Vector 实现类
2019-03-11