Heim > Web-Frontend > js-Tutorial > Hauptteil

Verwendung von Promise in Javascript zur Lösung des asynchronen Ladens (Bild, CSS, JS usw.)

Barbara Streisand
Freigeben: 2024-11-09 08:59:02
Original
859 Leute haben es durchsucht

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

Manchmal müssen wir einige Vorgänge abschließen, nachdem wir statische Ressourcen geladen haben. Die Verwendung von Callback-Funktionen ist eine gängige Methode, dieser Ansatz generiert jedoch möglicherweise mehrere Callback-Funktionen, wodurch die Codestruktur komplexer wird. Wir können Promise also verwenden, um dieses Problem zu lösen.

Beispiel (Laden eines Bildes)

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
})
Nach dem Login kopieren

Beispiel für das Laden mehrerer Bilder

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
})
Nach dem Login kopieren

Promise.all() empfängt eine Reihe von Versprechen, die nur dann den Status „Erfüllt“ erreichen, wenn alle Versprechen den Status „Erfüllt“ erreichen

Das obige ist der detaillierte Inhalt vonVerwendung von Promise in Javascript zur Lösung des asynchronen Ladens (Bild, CSS, JS usw.). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage