TOOLS_JS异步调用的同步处理

js异步调用转同步

js 复制代码
// 执行两个嵌套的异步请求
function test() {
    let promise_a = fetch('https://www.baidu.com/')

    promise_a.then(res_a => {
        res_a = "https://www.baidu.com/"
        let promise_b = fetch(res_a)
        promise_b.then(res_b => {
            console.log("res_b = ", res_b)
        }).catch(err => {
            console.log("promise_b err=>", err);
        })

    }).catch(err => {
        console.log("promise_a err=>", err);
    })

}

test()

// *******************************************
// 将这两个嵌套的异步请求修改为同步的处理
function test_async() {
    return new Promise(function(resolve, reject) {
        let promise_a = fetch('https://www.baidu.com/')

        promise_a.then(res_a => {
            res_a = "https://www.baidu.com/"
            let promise_b = fetch(res_a)
            promise_b.then(res_b => {
                resolve(res_b)
            }).catch(err => {
                // console.log("promise_b err=>", err);
                reject(err)
            })

        }).catch(err => {
            // console.log("promise_a err=>", err);
            reject(err)
        })

    })
}

// 将异步请求用一个promise包裹 然后放到一个异步函数中
async function test() {
    // console.log('test开始...');
    var value1 = await test_async();
    // console.log("value1 = ", value1);
    return value1;
}

// 调用时使用await阻塞即可
let res = await test()
console.log("res = ", res)
相关推荐
A_nanda4 分钟前
VS2022安装QT6.5.3后,如何更新项目配置
前端·javascript·vue.js
ZC跨境爬虫6 分钟前
UI前端美化技能提升日志day8:(Watch专区字体优化+尺寸校准+视觉重构+结构分层)
前端·ui·重构·html
heyCHEEMS29 分钟前
记录一下自动化构建中 SSE 与子进程管理的三个坑
javascript·node.js
SonoTommy29 分钟前
在 Node.js 文件上传中集成 ClamAV 扫描
javascript
悟空和大王32 分钟前
内网环境: vue3中使用 iconify 的在线图标
前端
福大大架构师每日一题33 分钟前
openclaw v2026.4.21 更新:图像生成、权限安全、插件修复、Slack 线程、浏览器与 npm 安装全面优化
前端·安全·npm
FanetheDivine33 分钟前
自定义useChat管理AI会话
前端·react.js·aigc
小赵同学WoW38 分钟前
call(), appy(),bind() 之间的区别与使用方法,自己实现这三个函数
前端
Lkstar39 分钟前
读懂 Vue 双端 Diff 算法:从源码到原理,一篇彻底搞懂
vue.js
t***54443 分钟前
如何在 Dev-C++ 中设置 MinGW 和 Clang 的路径
java·前端·c++