zoukankan      html  css  js  c++  java
  • async与await基础

    async函数

    • 函数的返回值为promise对象
    • promise对象的结果由async函数执行的返回值决定
    • async的作用是声明一个函数为异步函数,当用了async声明后,这个函数就成了一个promise对象 ,如果这个函数有返回值,那么函数内部会把这个return 的值赋值给promise对象的PromiseValue。通过await就可以拿到这个异步返回值。当然通过then()也可以拿到。

    await表达式

    • await右侧的表达式一般为promise对象,但也可以是其他的值
    • 如果表达式是promise对象,await返回的是promise成功的值
    • 如果表达式是其他值,直接将此值作为await的返回值
    • await 是等待的意思,用于含有async的函数体内,可以让两个异步函数按照同步的顺序执行,也就是自上而下,依次执行。这样可以避免写过多的嵌套代码。

    注意

    await必须写在async函数中,但async函数中可以没有await

    如果await的promise失败了,就会抛出异常,通常需要try...catch来捕获

    基本用法

    async function queryData(id){
        const ret=await axios.get('/data');
        return ret;
    }
    queryData.then(ret=>{
        console.log(ret)
    })
    

    async/await处理多个异步请求

    //前端:
    async function queryData(){
        var info = await axios.get('async1');
        var ret = await axios.get('async2?info='+info.data);
        return ret.data
    }
    queryData().then(function(data){
        console.log(data)   //结果为  world
    })
    
    //后台:
    app.get('/async1',(req,res) => {
        res.send('hello')
    })
    app.get('async2',(req,res) => {
        if(req.query.info == 'hello'){
            res.send('world')
        }else{
            res.send(error)
        }
    })
    
  • 相关阅读:
    js基础知识(pomelo阅读)
    nohup启动命令(转)
    JS基础知识(数组)
    JS基础知识(作用域/垃圾管理)
    JS基础知识(基本类型 引用类型)
    html5实现饼图和线图-我们到底能走多远系列(34)
    RK3288 device descriptor read/64, error -32
    RK3288 双屏异显,两屏默认方向不一致
    Android 查看Android版本的方法
    adb error: device offline
  • 原文地址:https://www.cnblogs.com/wahaha-/p/14051103.html
Copyright © 2011-2022 走看看