30 votes

JavaScript côté client pour prendre en charge les promesses, les contrats à terme, etc.

Je suis vraiment intéressé à la mise en œuvre des Promesses et des fonctions associées en Javascript côté client. De ce que j'ai vu, le focus dans la mise en œuvre de ces technologies dans le Javascript semble être sur javascript côté serveur (SSJS) avec des Promesses de CommonJS. Idéalement pour moi, je voudrais trouver une solution qui fonctionne bien avec jQuery ou Google Fermeture de la Bibliothèque, mais je suis ouvert à toute solution.

  • Est-il possible d'utiliser le CommonJS solution côté client? Cette Sitepen article a une foule d'information sur les promesses de CommonJS, mais il est axé sur SSJS.
  • Quelles sont les autres bibliothèques sont disponibles pour mettre en œuvre les promesses que l'on peut facilement travailler côté client?
  • Quelles sont vos impressions, l'expérience et les commentaires sur n'importe quelle trousse à outils que vous avez utilisés?

J'ai trouvé un peu les implémentations côté client, mais je suis pas clair sur la façon robuste, ils sont. Est-il de la bibliothèque, qui est devenu le standard de facto? Est un courant de la bibliothèque (comme jquery) travaillant déjà sur quelque chose de semblable pour une future version?

Tout les autres? Quelqu'un a une expérience avec l'un de ces et de ont une préférence? Est-ce mieux que les autres?

15voto

CoolAJ86 Points 19341

Mise à jour: Maintenant que les promesses n'ont pas été formellement normalisé, je suggérerais à l'aide de l' es6-promesse de polyfill si votre ciblé navigateur n'est pas déjà le natif Promise objet.

Toutefois, forEachAsync, forAllAsync, et lateral de la FuturesJS collection de fournir fonctionnalité très utile pour la gestion simultanée de plusieurs tâches asynchrones / promesses à la fois.

Je suis le développeur de FutureJS - JavaScript Asynchrone boîte à outils TM (ou du moins c'est le but).

J'ai commencé avec les extraits de Crockford de diapositives. Voici l' original & unadultered mise en œuvre. Comme je l'ai couru en plus de questions et vous avez vu ce que les autres ont fait, je continue à mettre à jour la bibliothèque avec les solutions les plus pratiques.

Si CommonJS jamais fait un officiel de la normalisation, j'avais envisager de libérer une version qui s'adresse à qui, mais actuellement, les contrats à Terme est assez simple et fait ce qu'il est conçu pour faire.

J'aimerais bien vous rejoindre la liste de diffusion et de me donner vos commentaires et suggestions.

D'autres fonctions de la bibliothèque:

  • avenir (remplacé par new Promise(function (resolve, reject) {});)
  • joindre (remplacé par Promise.all([]);)
  • séquence (remplacé par le retour d'une promesse, une promesse)
  • forEachAsync
  • forAllAsync
  • latérale
  • asyncify
  • chainify
  • boucle

Chaque sous-module peut être facilement installé ou emballés sur son propre

  • npm install foreachasync forallasync
  • ender build future join (qui n'est plus pris en charge)
  • bower install forEachAsync forAllAsync

=8^D

P. S. FuturesJS travailleront de concert avec jQuery, Underscore.js, etc, dans les deux Node.js et Ender.js. Il n'y a pas de dépendances. Je crois qu'il va travailler avec Rhino ainsi. Si non, laissez-moi savoir et il devrait être une solution rapide.

P. P. S. InfoQ a un article sur plusieurs js async boîtes à outils

7voto

thisgeek Points 1226

Le module Q de Kris Kowal peut être utilisé côté client. Il fonctionne avec RequireJS et est conforme à CommonJS / Promises / A , B et D.

Je ne l'ai pas comparé à d'autres implémentations, mais je l'utilise, je l'aime bien, et cela fonctionne pour moi.

2voto

hippietrail Points 4257

Je vois cette question est maintenant de deux ans, mais je pense que je devrais le ramener à la vie un peu avec la réponse la plus évidente que tout le monde la lecture de cette question sûrement sait maintenant...

jQuery a bénéficié du soutien pour Deferred (y compris l' .promise()) depuis la version 1.5, qui a été publié à la fin de janvier 2011.

Actuellement, je dirais que c'est peut-être la mise en œuvre des promesses/à terme avec la plupart de l'exposition, compte tenu de l'omniprésence de JavaScript dans chaque navigateur web et la popularité de jQuery comme l'un des plus connus aux frameworks JavaScript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X