zoukankan      html  css  js  c++  java
  • 18-async函数

    一、含义

    1、async函数是什么?

    async函数使得异步操作更加方便。用一句话来说,他就是generator函数的语法糖。

    2、async函数对generator函数的改进有哪四点?

    (1)内置执行器

    (2)更好的语义

    (3)更广的实用性

    (4)返回值是Promise

    3、例子:获取股票价格函数

    async function getPrice(name){
        var symbol = await getStockSymbol(name)
        var price = await getStockPrice(symbol)
        return price
    }
    getPrice('goog').then((res)=>{
        console.log(res)
    })

    这个例子是获取股票报价的函数,函数前面的async关键字表明这个函数内部又异步操作。调用这个函数会返回一个promise对象。

    4、例子:指定多少ms之后输出一个值。

    function timeout(ms){
        return new Promise((resolve,reject)=>{
            setTimeout(resolve,ms)
        })
    }
    
    async function asyncPrint(value, ms){
        await timeout(ms)
        console.log(value)
    }
    
    asyncPrint("Hello ES6", 500)

    由于async函数返回的是promise对象,可以作为await命令的参数。

    async function timeout(ms){
        await new Promise((resolve, reject)=>{
            setTimeout(resolve, ms)
        })
    }
    async function asyncPrint(value, ms){
        await timeout(ms)
        console.log(value)
    }
    
    asyncPrint('hello', 500)
    function timeout(ms){
        return new Promise((resolve)=>{
            setTimeout(()=>{
                resolve("hi")
            }, ms); //注意这里的第一个参数,是一个箭头函数,如果去掉箭头函数,延迟6秒不会起作用
        })
    }
    
    async function printIt(value, ms){
        var it = await timeout(ms)
        console.log("it-->>", it)
    }
    printIt("hi", 6000) //延迟六秒后输出hi
  • 相关阅读:
    LVS负载均衡软件使用及(LVS简介、三种工作模式、十种调度算法)
    Nginx+Tomcat实现负载均衡!
    Nginx实现HTTP及TCP负载均衡
    Nginx 反向代理报400错误解决方法!
    Session服务器之Session复制!
    反射、内置方法和元类
    多态和绑定方法
    封装和继承
    面向对象编程
    软件目录规范下的AMT+购物车(简易版)的实现
  • 原文地址:https://www.cnblogs.com/qingshanyici/p/12873047.html
Copyright © 2011-2022 走看看