JavaScript

node.jsで使える非同期コントロールフローライブラリ nue その8 - 例外ハンドリング

nueでは、例外(エラー)はflowの最後の関数でハンドリングできます。例外が起きた場合、処理は最後の関数に移り、this.errに例外を表すオブジェクトが設定されます。 非同期ワークフローにおける例外には2種類あります。1つめは、フローの中で明示的にthro…

node.jsで使える非同期コントロールフローライブラリ nue その6 - mapの必要性について

id:koichik さんがフロー制御のライブラリ(node-flowless)を作ったそうです。いやー刺激的です。 http://d.hatena.ne.jp/koichik/20120219#1329634800 上記エントリ中の次の文章に反応してみます。 あとは map() なんかの非同期版も重宝ではありますが,そ…

node.jsで使える非同期コントロールフローライブラリ nue その3

どうやら僕は間違った方向に進んでいたようです。シンプルに考え直してみると、parallelとかmapとかfilterとかいらない。もっとシンプルに非同期コールバックの待ち合わせに焦点を当てたほうが使いやすくなるはず。コードの1/3以上を捨てて、その2で示したサ…

node.jsで使える非同期コントロールフローライブラリ nue その4

非同期処理前と非同期処理後のコードで値をどう共有するか? nueでは2つの方法を提供します。 引数で渡す flowローカルな変数を介して共有する (グローバル変数とかflowよりも大きなスコープで共有する方法もありますが、ここでは取り上げません。) 1. 引…

node.jsで使える非同期コントロールフローライブラリ nue その5

単体テストのしやすさって重要ですよね。ここでflowがネスト可能であることが効果を発揮します。テストライブラリにmochaを使った場合のサンプルコードはこのようになります。 var flow = require('nue').flow; var fs = require('fs'); var assert = requir…

node.jsで使える非同期コントロールフローライブラリ nue その2

asyncblock(https://github.com/scriby/asyncblock)というnode-fiberを使ったライブラリがあります。こちらのREADMEの後半に、pure node版、async版、asyncblock版の比較コードが載っていますが、同等の処理を行うnue版も作ってみました。 次のものです。 va…

node.jsで使える非同期コントロールフローライブラリ nue その1

最近作っています(https://github.com/nakamura-to/nue)。だいたいできてきたんですが、ドキュメントが大変、というか英語が書けなくて苦しみ中です。。気分転換にブログで紹介します。 nueはnpmでインストールできます。現時点のバージョンは0.0.4。 npm …

deku.js - パイプライン処理に焦点をあてたJavaScriptのテンプレートライブラリ

以前、tempura.jsという名前で作っていたライブラリですが、新しくdeku.jsという名前で作り替えました。 https://github.com/nakamura-to/deku deku.jsの最大の特徴は、タイトルにある通り、パイプライン処理です。データをテンプレートに書き付ける際にパイ…

ブラウザでもNode.jsでも動くテンプレートライブラリ

これは JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の19日目の記事です。 JavaScriptで作られたテンプレートライブラリってたくさんありますよね。今日もこんなブログみかけました。 クライアントサイドJavaScriptで使えるテンプレートエ…

JavaScript用テンプレートライブラリ tempura

JavaScriptのテンプレートライブラリを作りました。その名もtempura(てんぷら)。はい、、語呂だけで選びました。 リポジトリ https://github.com/nakamura-to/tempura Backbone.jsと組み合わせることを想定して作りましたが、特にほかのライブラリには依存…