async和await是es7中的语法
----------------1---------------------
function getData(){
return '这是一个数据'
}
console.log(getData())
这是一个数据
----------------2--------------------- async 能让一个方法变成一个Promise
async function getData(){
return '这是一个数据'
}
console.log(getData())
// Promise { '这是一个数据' }
----------------3--------------------- 错误的await写法。(await必须用在async 方法里面)
async function getData(){
return '这是一个数据'
}
var d=await getData() // 错误的写法
console.log(d)
----------------4--------------------- await 可以获取promise返回的数据。(await必须用在async 方法里面)
async function getData(){
return '这是一个数据'
}
async function test(){
var d=await getData()
console.log(d)
}
test()
----------------5--------------------- 不用await拿到异步返回的数据的传统写法(还是避免不了回调。而await可以避免回调)
async function getData(){
return '这是一个数据'
}
var p=getData()
p.then((data)=>{
console.log(data)
})
----------------6--------------------- await 阻塞的功能,能够把异步改成同步
async function getData(){
console.log(2)
return '这是一个数据'
}
async function test(){
console.log(1)
var d=await getData()
console.log(3)
console.log(d)
}
test()
// 你会发现上面打印的顺序是 1 2 3 异步getData()改成了同步
----------------7--------------------- 用法
function getData(){
return new Promise((resolve,rejects)=>{
setTimeout(() => {
var username='zhangsan'
resolve(username)
}, 1000);
})
}
// var p=getData()
// p.then((data)=>{
// console.log(data)
// })
// 传统方式改成下面的方式
async function test(){
var data=await getData()
console.log(data)
}
test()