JavaScript Utilisation de l'ES2017 async / waiting


Exemple

Le même exemple ci-dessus, Image loading , peut être écrit en utilisant des fonctions asynchrones . Cela permet également d'utiliser la méthode try/catch pour la gestion des exceptions.

Remarque: à partir d'avril 2017, les versions actuelles de tous les navigateurs sauf Internet Explorer prennent en charge les fonctions asynchrones .

function loadImage(url) {
    return new Promise((resolve, reject) => {
        const img = new Image();
        img.addEventListener('load', () => resolve(img));
        img.addEventListener('error', () => {
            reject(new Error(`Failed to load ${url}`));
        });
        img.src = url;
    });
}

(async () => {

    // load /image.png and append to #image-holder, otherwise throw error
    try {
        let img = await loadImage('http://example.com/image.png');
        document.getElementById('image-holder').appendChild(img);
    }
    catch (error) {
        console.error(error);
    }

})();