js非同步流程的promise及generator

2022-07-07 04:06:13 字數 1095 閱讀 8357

同步:同時只能做一件事;優點:**更簡單

例項const p1 = new promise((resolve, reject) => ).then(data => )

const p2 = new promise((resolve,reject) => ,200)

}).then(data => )

console.log('主線程任務')

promise.all([p1,p2])//先執行all中所有任務, 執行完成之後再去執行後面的任務

.then(data => )

//輸出結果:主線程任務 任務一 任務二 任務三

promise.race([p1,p2])//任務快的先輸出

.then(data => )

//輸出結果:主線程任務 任務一 任務三 任務二

promise.allsettled([p1,p2])

.then(data => )

例項function* p1()

return '任務6'

}var p = p1();

//一次p.next()只執行一次

console.log(p.next())//

console.log(p.next())//

console.log(p.next())//      

console.log(p.next())//

console.log(p.next())//

console.log(p.next())//

console.log(p.next())//

console.log(p.next())//

promise.all([

$.ajax()

]).then(results=>)

]).then(results=>, err=>);

}else)

]).then(results=>, err=>);

}}, err=>);

runner(function *());

if(userdata.type=='vip'));

}else);

}//生成、...

});

非同步Promise及狀態特點

promise 非同步通訊程式設計的一種解決方案,它比傳統 式更加的強大 解決了es6前多層次巢狀的同步 非同步,執行順序混亂且不好維護等問題。promise使用 new 來呼叫 promise 的構造器來進行例項化,接受乙個函式作為引數,並且要傳入resolve reject兩個引數執行 new ...

js的非同步載入及promise的三種狀態

恢復內容開始 我們平時經常使用的就是這種同步載入的形式 同步模式,又稱阻塞模式,會阻止瀏覽器的後續處理,停止了後續的解析,因此停止了後續的檔案載入 如影象 渲染 執行。js 之所以要同步執行,是因為 js 中可能有輸出 document 內容 修改dom 重定向等行為,所以預設同步執行才是安全的。以...

js利用Promise解決多次非同步請求問題

專案背景 上傳多張時需要利用exif,拿到的exif資訊,所以需要在乙個迴圈裡多次使用exif。而exif的exif.getdata 方法是非同步執行,所以產生多次非同步請求問題。解決方法 利用promise.all 解決。每次迴圈建立乙個promise物件,然後建立乙個promise物件陣列,利用...