JavaScript的四种常用异步操作方式:callback、Promise、Generator、asnyc/await
一、callback回调函数
回调是一个函数作为参数传递到另一个函数里,在那个函数执行完后再执行。
function f1 (callback) {
setTimeout(function () {
console.log("1")
callback();
},1000);
}
function f2(){
console.log("2")
}
f1(f2);
缺点是会陷入回调地狱。
二、Promise(ES6)
- Promise对象代表一个异步操作,有三种状态:pending(进行中),resolved(已成功)和rejected(已失败)。
- 一旦状态改变,就不会再变,任何时候都可以得到这个结果。状态改变只有两种可能:pending=>resolved,pending=>rejected。
const promise = new Promise(function(resolve, reject) {
// ... some code
if (/* 异步操作成功 */){
resolve(value);
} else {
r