読者です 読者をやめる 読者になる 読者になる

chain-tinyというのを書いた

https://github.com/hokaccha/node-chain-tiny

flowコントロール系のモジュール。flowコントロール系はnpmで探せば腐るほどあるのにも関わらずなんで書いたかというと、自分で書いて動作をちゃんと理解したかったからというのが最初の動機。

書いてみると結構自分的には使いやすい感じになったのでリリースしてみた。こういうモジュールは気に入らない動作があったり、機能多くて動作がよくわからんかったりするので、自分でメンテできるし書いたメリットは結構あったと思ってる。

基本的な機能としてはasyncのwaterfallとほぼ同じ。書き方が違うだけ。

var chain = require('chain-tiny');

chain(function(next) {
  setTimeout(function() {
    next(null, 'foo');
  }, 100);
})
.chain(function(foo, next) {
  console.log(foo); // => foo
  setTimeout(function() {
    next(null, 'bar', 'baz');
  }, 1);
})
.end(function(err, bar, baz) {
  console.log(bar); // => bar
  console.log(baz); // => baz
});

まあこんな感じ。.chainでstackにpushしてend()で順番に実行する。あとforEach的なのは実装してある。パラレル的なやつがまだ実装できてないので次はそれ実装する予定。