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)
相关推荐
一颗宁檬不酸几秒前
前端农业商城中产品产地溯源功能的实现
前端
李少兄8 分钟前
深入理解前端中的透视(Perspective)
前端·css
席之郎小果冻9 分钟前
【03】【创建型】【聊一聊,单例模式】
开发语言·javascript·单例模式
江公望17 分钟前
HTML5 History 模式 5分钟讲清楚
前端·html·html5
云和数据.ChenGuang24 分钟前
Zabbix Web 界面安装时**无法自动创建配置文件 `zabbix.conf.php`** 的问题
前端·zabbix·运维技术·数据库运维工程师·运维教程
码界奇点27 分钟前
Java Web学习 第15篇jQuery万字长文详解从入门到实战解锁前端交互新境界
java·前端·学习·jquery
前端老曹36 分钟前
vue3 三级路由无法缓存的终极解决方案
前端·javascript·vue.js·vue
兮动人38 分钟前
Google Chrome 142更新引发内网访问危机:原理、影响与全面解决方案
前端·chrome
PAQQ39 分钟前
ubuntu22.04 搭建 Opencv & C++ 环境
前端·webpack·node.js
这是个栗子1 小时前
git报错:Reinitialized existing Git repository in ...
前端·git·github