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);
    })();
    
  • 相关阅读:
    Graphics—对话框操作
    Visual Studio 2013 出现error C4996(fopen函数出错)如何解决
    Visual Studio 2013出现错误LNK 2026(SAFESEH模块不兼容)如何解决
    Graphics—菜单设置笔记
    kali 根目录中文乱码
    sqlite文件损坏修复
    win10,mysql安装
    flask 对从数据库反向生成的表进行修改
    flask第一章:项目环境搭建
    flask 连接数据各种报错
  • 原文地址:https://www.cnblogs.com/WindrunnerMax/p/12604334.html
Copyright © 2011-2022 走看看