Menggunakan Promise dalam Javascript untuk menyelesaikan pemuatan aynchronous (imej, css, js, dll.)

Barbara Streisand
Lepaskan: 2024-11-09 08:59:02
asal
858 orang telah melayarinya

Using Promise in Javascript to solve aynchronous loading(image, css, js, etc.)

Kadangkala kita perlu menyelesaikan beberapa operasi selepas memuatkan sumber statik. Menggunakan fungsi panggil balik ialah kaedah biasa, tetapi pendekatan ini mungkin menjana fungsi berbilang panggil balik, menjadikan penyusunan kod lebih kompleks. Jadi kita boleh menggunakan Janji untuk menangani isu ini.

Contoh (memuatkan imej)

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
})
Salin selepas log masuk

Contoh memuatkan imej berganda

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
})
Salin selepas log masuk

Promise.all() menerima pelbagai janji yang hanya menjadi keadaan penuh apabila semua Promise menjadi keadaan penuh

Atas ialah kandungan terperinci Menggunakan Promise dalam Javascript untuk menyelesaikan pemuatan aynchronous (imej, css, js, dll.). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan