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
原文地址:https://www.cnblogs.com/qingshanyici/p/12873047.html