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)
相关推荐
chilavert31810 分钟前
技术演进中的开发沉思-191 JavaScript: 发展历程(上篇)
开发语言·javascript·ecmascript
努力的小郑13 分钟前
今晚Cloudflare一哆嗦,我的加班计划全泡汤
前端·后端·程序员
武昌库里写JAVA43 分钟前
微擎服务器配置要求,微擎云主机多少钱一年?
java·vue.js·spring boot·后端·sql
dy17171 小时前
el-table表头上下显示内容
javascript·vue.js·elementui
q***64971 小时前
头歌答案--爬虫实战
java·前端·爬虫
凌波粒1 小时前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax
亮子AI1 小时前
给你的应用加上Google账号登录
javascript
液态不合群2 小时前
DDD驱动低代码开发:从业务流程到领域模型的全链路设计
前端·低代码·架构·ddd
jonyleek2 小时前
JVS低代码开发中,如何创建自定义前端页面并接入到现有系统中,从创建到接入的全攻略
前端·低代码·前端框架·软件开发
努力往上爬de蜗牛2 小时前
react native 实现选择图片或者拍照上传(多张)
javascript·react native·react.js