ajax
請求異步操做的原理:執行到須要的異步操做,會開始執行異步操做,不等執行完直接開始執行操做後面的語句,等語句執行徹底再去看異步操做是否執行完成,完成就返回完成,沒有就繼續執行異步。
const promise = new Promise(function(resolve, reject) {
// ... 請求代碼
if (/* 異步操做成功 */){
resolve(value);
} else {
reject(error);
}
});
複製代碼
then
爲Promise
執行成功的語句promise.then(function(res){});
複製代碼
catch
爲Promise
執行失敗的語句promise.catch(function(err){});
複製代碼
promise.then(function(res){
}).catch(function(err){
});
複製代碼
then
濫用的話也是很噁心的,不斷的then下去。因此出了一個終極解決方案。ajax
async/await
是then/catch
的完美版。做用與then/catch
相同,只是用法上的區別。
await
都會先返回,再往下執行。變成了同步操做!async f1(){
const res = await promise;
}
複製代碼
try/catch
監聽Promise
返回狀態,try
爲成功,catch
失敗async f1() {
try{
const res = await promise;
}catch(err){
console.log(err)
}
}
複製代碼