Resumé

RxJs e JsRender insieme

Cristian Merighi () 0,00

Rivisitazione dell'esempio del Twitter reader, utilizzando RxJs (Reactive Extensions per javascript) al fine di produrre codice più elegante e leggibile.
Questo articolo è da considerarsi obsoleto. Alcune funzionalità potrebbero non essere più disponibili e non è possibile aggiungere commenti.

Perpetuando il pretestuosamente ritrìto esempio del Twitter reader, eccolo stavolta condito con una relativa novità nel mondo dei frameworks javascript: la salsa Rx-Js!

La nouvelle vague della programmazione di questo momento obbliga ad essere dichiarativi e fluenti, e Rx s'inserisce in questo contesto.

Riprendendo il codice utilizzato nell'ultimo articolo ecco come appare dopo un po' di restyling a botte di Observables e Subscribers:

Rx-Js + Rx bindings for jQuery
  1. function loadTweets() {
  2.     // Rx-jQuery ajax (fluent version)
  3.     var query = $.ajaxAsObservable({
  4.         // be sure to specify dataType jsonp
  5.         dataType: "jsonp",
  6.         data: { include_entities: true, include_rts: true, screen_name: 'cmerighi', count: 10 },
  7.         url: 'https://api.twitter.com/1/statuses/user_timeline.json'
  8.     }).selectMany(function (json) {
  9.         // sweep out as data get received...
  10.         $('#tweets').empty();
  11.         //
  12.         return Rx.Observable.fromArray(json.data);
  13.     }).select(function (tweet) {
  14.         return {
  15.             img: tweet.user.profile_image_url_https,
  16.             text: renderTweet(tweet),
  17.             date: timeago(tweet.created_at)
  18.         };
  19.     }).subscribe(function (tweet) {
  20.         // append the new item (JsRender template)
  21.         $('#tweets').append($.render.twit(tweet));
  22.         },
  23.         function (error) {
  24.             // handle the error
  25.         });
  26. }

Proponendo la versione riveduta e corretta della solita DEMO...
concludo ricordando che gli scripts del framework RxJs utilizzati nel contesto di quest'articolo sono scaricabili via NuGet:

NuGet

NuGet

Take care. Bye.

feedback
 

Syndicate

Autore

Cristian Merighi facebook twitter google+ youtube

Ultimi articoli

Top rated

Archivio

Dove sono?

Autore

Cristian Merighi facebook twitter google+ youtube

Le mie letture

Feeds