async/await快速理解
在chrome浏览器的console控制台中,运行以下代码:
function getSyncTime() {
return new Promise(resolve, reject) => {
try {
let startTime = new Date().getTime();
setTimeout(() => {
let endTime = new Date().getTime(),
data = endTime - startTime;
resolve(data);
}, 500);
} catch(err) {
reject(err);
}
}
}
async function getSyncData() {
let time = await getSyncTime(),
data = `endTime - startTime = ${time}`;
return data;
}
async function getDat() {
let data = await getSyncData();
console.log(data);
}
getData();
运行结果如下:
Promise {[[PromiseStatus]]: "pending", [PromiseValue]]: undefined}
endTime - startTime = 501
async/await语法特点:
可以让异步逻辑用同步写法实现
最底层的await返回需要是Promise对象
可以通过多层async function的同步写法来代替传统的callback嵌套