相信大家都會遇到一種情況,多個請求併發執行,但現在的需求是要在一個請求或多個請求之後再呼叫某一個未知函式,這就需要用到es6的Promise物件和async函式了
活不多說,直接上demo,套用即可
//模擬ajax非同步操作1
function ajax1() {
const p = new Promise((resolve, reject) => {
setTimeout(function() {
resolve('ajax 1 has be loaded!')
}, 1000)
})
return p
}
//模擬ajax非同步操作2
function ajax2() {
const p = new Promise((resolve, reject) => {
setTimeout(function() {
resolve('ajax 2 has be loaded!')
}, 2000)
})
return p
}
//等待兩個ajax非同步操作執行完了後執行的方法
async function myFunction() {
const x = await ajax1()
console.log(x)
const y = await ajax2()
//等待兩個非同步ajax請求同時執行完畢後列印出資料
console.log(x, y)
}
另外這樣寫是存在相容性問題的
複製程式碼
解決辦法連結 www.cnblogs.com/lguow/p/103…