zoukankan      html  css  js  c++  java
  • async/await

    async/await

    asyncES7的与异步操作有关的关键字,其返回一个Promise对象,await操作符用于等待一个Promise对象,它只能在异步函数async function内部使用。

    async

    语法

    async function name([param[, param[, ... param]]]) { statements }
    
    • name: 函数名称。
    • param: 要传递给函数的参数的名称。
    • statements: 函数体语句。

    async函数返回一个Promise对象,可以使用then方法添加回调函数,返回的Promise对象会运行执行resolve异步函数的返回结果,如果抛出异常则运行拒绝reject

    实例

    async function asyncPromise(v){
        return v;
    }
    
    asyncPromise(1).then((v) => {
        console.log(v);
    }).catch((e) => {
        console.log(e);
    })
    

    await

    async一般是配合await指令使用的,该指令会暂停异步函数的执行,并等待Promise执行,然后继续执行异步函数,并返回结果。若Promise处理异常rejectedawait表达式会把Promise的异常原因抛出。另外,如果await操作符后的表达式的值不是一个Promise,则返回该值本身。

    实例

    function promise(){
        return new Promise(function(resolve,reject){
            var rand = Math.random() * 2;
            setTimeout(function(){
                resolve(`solve ${rand}`);
            },1000)
        })
    }
    
    (async function asyncPromise(){
        var result = await promise();
        console.log(result);
    })();
    
    // 捕捉异常
    function promise(){
        return new Promise(function(resolve,reject){
            throw new Error(`reject`);
        })
    }
    
    (async function asyncPromise(){
        var result = await promise();
        console.log(result);
    })().catch((e) => {
        console.log(e);
    });
    
    // 非promise对象直接返回该值本身
    function notPromise(){
        return 1;
    }
    
    (async function asyncPromise(){
        var result = await notPromise();
        console.log(result);
    })();
    
  • 相关阅读:
    安装 windows 2008 解决 gpt 分区问题
    you have not created a boot efi partition
    echarts gauge 仪表盘去除外发光效果
    上国际网络——通过配置host
    juery 选择器 选择多个元素
    html5 <input> placeholder 属性
    PHP——字符串统一转码为GBK,自动判断是否UTF8并转码
    sublime text2 解决中文乱码
    PHP超级全局变量——Session 变量
    js为元素添加onclick事件
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/12604334.html
Copyright © 2011-2022 走看看