Dino Geek essaye de t'aider

Comment utiliser les générateurs en JavaScript?


Les générateurs sont des types spéciaux de fonctions en JavaScript qui peuvent être arrêtés et repris ultérieurement. Ceci est très utile pour gérer des opérations asynchrones sans utiliser de callbacks ou de promesses.

Voici comment les utiliser :

Définition d’un générateur

Pour définir un générateur en JavaScript, utilisez l’opérateur `function*` :

```
function* generatorFonction(){ yield ‘Hello’; yield ‘World’;
}
```

Utilisation d’un générateur

Pour utiliser un générateur, vous devez d’abord l’instancier, puis appeler la méthode `next()` :

```
let generator = generatorFonction();

console.log(generator.next().value); // Hello
console.log(generator.next().value); // World
console.log(generator.next().value); // undefined (pas d’autres valeurs à produire)
```

Yield

L’instruction `yield` est utilisée pour mettre en pause et reprendre une fonction de générateur `(function* ou une fonction générée via un générateur)`.

```
function* countAppleSales () { var saleList = [3, 7, 5]; for (var i = 0; i < saleList.length; i++) { yield saleList[i]; }
}

var appleStore = countAppleSales(); // Generator
console.log(appleStore.next()); // { value: 3, done: false }
console.log(appleStore.next()); // { value: 7, done: false }
console.log(appleStore.next()); // { value: 5, done: false }
console.log(appleStore.next()); // { value: undefined, done: true }
```

Générateurs et Promesses

Les générateurs peuvent être utilisés avec les Promesses pour gérer les opérations asynchrones :

```
function* generatorFonction(){ var result = yield doAsyncOperation(); console.log(result);
}

function doAsyncOperation(){ return new Promise(function(resolve, reject){ setTimeout(function(){ resolve(‘Résultat de l\‘opération asynchrone’); }, 1000); });
}

let generator = generatorFonction();
generator.next().value.then(function(result){ generator.next(result); // Logs: ‘Résultat de l\‘opération asynchrone‘
});
```

Cela permet de gérer des opérations asynchrones de manière plus linéaire et compréhensible, et évite “l’enfer des callbacks”.


Générez simplement des articles pour optimiser votre SEO
Générez simplement des articles pour optimiser votre SEO





DinoGeek propose des articles simples sur des technologies complexes

Vous souhaitez être cité dans cet article ? Rien de plus simple, contactez-nous à dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nom de Domaine | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Mentions Légales / Conditions Générales d'Utilisation