有時候我們需要在載入靜態資源後完成一些操作。使用回調函數是一種常見的方法,但是這種方法可能會產生多個回調函數,使得程式碼結構更加複雜。所以我們可以使用Promise來處理這個問題。
function loadImg(imgSrc) { return new Promise(function(resolve, reject){ img.load = () => { // asynchronous code here resolve() } img.onError = () => { reject() } }) } loadImg('src.jpg').then(()=>{ // operations after loading image here }).catch(()=>{ // error handling })
function loadImg(imgSrc) { return new Promise(function(resolve, reject){ img.load = () => { // asynchronous code here resolve() } img.onError = () => { reject() } }) } const imgList = ['1.jpg', '2.jpg', '3.jpg', '4.jpg'] let imgLoadingPromise = [] for(let img of imgList) imgLoadingPromise.push(loadImg(img)) Promise.all(imgLoadingPromise).then(()=>{ // operations after loading image here }).catch(()=>{ // error handling })
Promise.all() 接收一組 Promise,只有當所有 Promise 都變成 fullfilled 狀態時,這些 Promise 才會變成 fullfilled 狀態
以上是Javascript中使用Promise解決非同步載入(圖片、css、js等)的詳細內容。更多資訊請關注PHP中文網其他相關文章!