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)
        }
    })
    
  • 相关阅读:
    WEB安全 php+mysql5注入防御(一)
    Spring 整合 Quartz 实现动态定时任务(附demo)
    dubbo工作原理(3)
    dubbo服务降级(2)
    dubbo服务降级(1)
    程序员决对不能缺少产品思维
    GNUPG
    idea远程debug:tomcat
    基于JavaMail的Java邮件发送:复杂邮件发送
    使用javaMail发送简单邮件
  • 原文地址:https://www.cnblogs.com/wahaha-/p/14051103.html
Copyright © 2011-2022 走看看