async和await(ES7)

async是异步的简写;await可以认为是async wait的简写

  • async用于声明一个function是异步的
async function getData(){
    return 'smileyyqp';
}
console.log(getData());        //返回一个Promise;异步方法
  • await用于等待一个异步方法执行完成

如何获取异步方法中的数据

  • 方法一:类似回调的方法
async function getData(){
    return 'smileyyqp';
}

var p = getData();
p.then((data)=>{
    console.log(data);
})
  • 方法二:await
    • awit是等待异步方法执行完成,可以获取异步方法李慕安的数据,但是必须的用在异步方法里面
async function getData(){
    return 'smileyqp';
}

async function test(){
    var d = await getData();
    console.log(d)
}

await阻塞的功能(将异步转换成同步)

async function getData(){
    console.log(2)
    return 'smileyqp';
}

async function test(){
    console.log(1)
    var d = await getData();
    console.log(d)
    console.log(3)
}
test();
//1 2 3

获取异步方法中的数据(返回Promise的方法)

function getData(){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            var username = 'smileyqp';
            resolve(username);
        },1000)
    });
}
//方法二(New):
async function test(){
    var data = await getData();
    console.log(data)
}
//方法一(Old):
var p = getData();
p.then(function(data){
    console.log(data)
})

results matching ""

    No results matching ""