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);
    })();
    
  • 相关阅读:
    根据会员权限显示指定字段教程与源码
    关键字替换排除HTML标签属性字符
    C# 图片处理(压缩、剪裁,转换,优化)
    点击按钮后表单自动提交的问题
    浏览器中添加收藏当前网页
    Javascript基础知识整理
    JS中不同类型的值比较问题
    ACM训练场
    sencha/extjs 动态创建grid表格
    sencha 报错问题汇总
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/12604334.html
Copyright © 2011-2022 走看看