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)
相关推荐
jingling5551 天前
css进阶 | 实现罐子中的水流搅拌效果
前端·css
zhengxianyi5151 天前
只需3句让Vue3 打包部署后通过修改配置文件修改全局变量——实时生效
vue.js·前后端分离·数据大屏·ruoyi-vue-pro优化
悟能不能悟1 天前
前端上载文件时,上载多个文件,但是一个一个调用接口,怎么实现
前端
可问春风_ren1 天前
前端文件上传详细解析
前端·ecmascript·reactjs·js
羊小猪~~1 天前
【QT】--文件操作
前端·数据库·c++·后端·qt·qt6.3
晚风资源组1 天前
CSS文字和图片在容器内垂直居中的简单方法
前端·css·css3
Miketutu1 天前
Flutter学习 - 组件通信与网络请求Dio
开发语言·前端·javascript
摘星编程1 天前
React Native for OpenHarmony 实战:Swiper 滑动组件详解
javascript·react native·react.js
鸣弦artha1 天前
Flutter框架跨平台鸿蒙开发——Build流程深度解析
开发语言·javascript·flutter
QQ4022054961 天前
python基于vue的大学生课堂考勤系统设计与实现django flask pycharm
vue.js·python·django