async和await有什么區別?
ES6 作為多年來 JavaScript 的重大版本變革,受到 JavaScript 開發者們的普遍歡迎,也正是從 ES6 (ES2015) 開始,JavaScript 版本發布變為年更,即每年發布一個新版本,以年號標識版本
隨著async/await正式納入ES7標準,據說是異步編程終級解決方案的 async/await。
async 是“異步”的意思,而 await 是等待的意思,await 用于等待一個異步任務執行完成的結果。
async/await 是一種編寫異步代碼的新方法(以前是采用回調和 promise)。
async/await 是建立在 promise 的基礎上。
async/await 像 promise 一樣,也是非阻塞的。
async/await 讓異步代碼看起來、表現起來更像同步代碼。
一、Async
1、async
async修飾的函數就是異步函數,該函數的返回值是promise對象。
async function f1(){
return "hello f1";
}
var t = f1();
console.log(t);// promise對象。
f1().then(function(str){
console.log("str:"+str); //str:hello f1
});
2、async和promise的對比
async function f1(){
return "hello f1";
}
function f2(){
return new Promise((resolve, reject) => {
resolve('hello f2');