Le protocole itérateur historique
Attention : Ce protocole historique était une fonctionnalité spécifique à SpiderMonkey et est supprimé à partir de Firefox 58. Pour utiliser des itérations par la suite, veuillez utiliser des boucles for..of ainsi que le protocole itérateur.
Le protocole itérateur obsolète, spécifique à Firefox
Avant la version 26, Firefox implémentait un autre protocole d'itération semblable à celui défini par ES2015.
Un objet est un itérateur historique lorsqu'il implémente une méthode next()
avec la sémantique suivante et lorsqu'il renvoie une exception StopIteration
à la fin de l'itération :
Propriété | Valeur |
---|---|
next |
Une fonction sans argument qui renvoie une valeur. |
Les différences entre le protocole historique et celui d'ES2015
- La valeur était directement renvoyée par la fonction
next
alors qu'avec le protocole ES2015, elle est contenue dans une propriétévalue
- La fin de l'itération était signalée par un objet
StopIteration
.
Un exemple simple utilisant l'ancien protocole
Exemple
function créerItérateur(tableau){
var nextIndex = 0;
return {
next: function(){
if(nextIndex < tableau.length){
return tableau[nextIndex++];
else
throw new StopIteration();
}
}
}
var it = créerItérateur(['yo', 'ya']);
console.log(it.next()); // 'yo'
console.log(it.next()); // 'ya'
try{
console.log(it.next());
}
catch(e){
if(e instanceof StopIteration){
// fin de l'itération
}
}