Les promesses en JavaScript

La fin de l'enfer des callbacks !

a marqué ce sujet comme résolu.

Bonjour à tous,

J'ai commencé il y a quelque temps la rédaction d'un tutoriel dont l'intitulé est Les promesses en JavaScript.

J'aimerai obtenir un maximum de retour sur celui-ci, sur le fond ainsi que sur la forme, afin de proposer en validation un texte de qualité.

Si vous êtes intéressé, cliquez ci-dessous

Merci d'avance pour votre aide

Hello,
J'arrive après la bataille, mais je voulais tout de même donner mon avis sur deux petits points.

Déjà, c'est un bon tuto, pas de souci là-dessus. :) J'aurais bien aimé l'avoir quand j'ai dû apprendre les promesses il y a quelques mois.

Premier point, je pense que ça aurait été intéressant de dire que ce système de promesses est inspiré d'AngularJS, qui propose déjà ce système, pour la culture, et pour que les gens qui connaissent ne soient pas perdus. Deuxième point, qui est plus une question de noob de ma part, est-ce qu'un des buts des promesses n'est pas de pouvoir se baser sur des valeurs obtenues de façon asynchrone ? Je me souviens quand je faisais des requêtes sur du SQLite en Angularjs, j'usais et abusais des promesses. Après, peut-être que je codais comme un porc, c'est une possibilité que je n'exclus pas ^^

Dernier point (j'ai menti en disant qu'il n'y avait que deux points, mouhaha), j'ai repéré quelques fautes, si tu veux je peux faire une relecture ce week-end et te MP ce que je trouve :)

Premier point, je pense que ça aurait été intéressant de dire que ce système de promesses est inspiré d'AngularJS, qui propose déjà ce système, pour la culture, et pour que les gens qui connaissent ne soient pas perdus.

melepe

Ce serait pas plutôt l'inverse ? :) Parce qu'Angular reste plutôt récent par rapport à ES6, quand même.

Je comprends pas trop ta seconde question : tu peux détailler ?

Pour les fautes je suis preneur (j'avoue que j'ai pas relu grand chose), ça sera aussi ça de moins pour Arius (même si ça lui ferait plaisir) ;)

Ce serait pas plutôt l'inverse ? :) Parce qu'Angular reste plutôt récent par rapport à ES6, quand même.

Hmm, je t'avoue que j'ai dit ça de mémoire, je suis quasiment sûr d'avoir lu un article qui disait qu'ECMAScript6 s'inspirait d'Angular sur ce point. Cela dit, en investissant un peu plus, je pense plutôt que j'ai rêvé. My bad.

Je comprends pas trop ta seconde question : tu peux détailler ?

En lisant ton tutoriel, je trouve que tu parles des avantages concernant le dés-imbrication des appels asynchrones, mais pas vraiment du fait que ça permet de récupérer le résultat de ces requêtes asynchrones. Par exemple, quand je faisais mes requêtes SQL au début, j'avais, en simplifiant à mort, une fonction select(table) qui faisait return SQL.query('SELECT * from ' + table);, et que j'appelais à plusieurs endroits du code avec var result = SQL.select('matable'). Du coup bah ça marchait pas parce que c'était asynchrone.

Les promesses m'ont permis de régler le problème sans avoir à me servir des callbacks de mes requêtes SQL. En effet, mes requêtes étaient dans un fichier, mon code dans un autre et je n'avais surtout pas envie de tout commencer à mélanger. Donc avec les promesses, j'ai pu faire

1
2
3
4
5
6
// Du blabla avant
var promise = SQL.select('matable');

promise.then(function(results) {
// Du blabla après
})

Sachant que mes select résolvaient tout comme il fallait bien. D'où ce que je disais dans mon dernier message : les promesses m'ont permis de bien obtenir mon résultat asynchrone, sans passer par les callbacks.
Maintenant, est-ce que c'est la bonne méthode, je ne sais pas (comme je disais, je suis un peu un noob en JS).

Pour les fautes je suis preneur (j'avoue que j'ai pas relu grand chose), ça sera aussi ça de moins pour Arius (même si ça lui ferait plaisir) ;)

viki53

Oki, je fais ça ce week-end. :)

Bah en fait tu récupères ton résultat un peu de la même manière qu'avec un callback, ton code reste quand même asynchrone.

C'est juste qu'il est plus facile à lire, maintenir et gérer puisque tu imbriques beaucoup moins.

JavaScript est quand même un langage non linéaire, ça change du PHP c'est sûr, mais c'est aussi son avantage. ;-)

Ce sujet est verrouillé.