2011-01-01から1年間の記事一覧

Math.floor(x / y) は常に期待する値になるか

x, y は0以上2^32未満の整数とし、yは0でないとする。 数式上に ${...} と書いたらECMAScriptで...の部分を評価した結果の値を表すものとする。${...} の外で a + b のように何か演算を書いた場合、それは浮動小数点数の演算ではなく、数学的な実数の演算を…

Deferredのコールバックスタイルと比較したメリット/デメリット

まだそんなに使い込んでいるわけではないけれど。 使う前はコールバックスタイルに比べてなにか利点あるの?別にコールバックスタイルで困らないんじゃない?って思っていたのでまとめてみる。 メリット コールバック引数が消えてすっきりする 処理1をやって…

for (var v in nantoka()) yield v とか書かなくちゃいけなくね問題

JavaScriptのジェネレータについて思うこと - fujidigの雑記 案外そうでもなかったかもしれない。一個一個の関数を扱いにくいジェネレータ関数のまま放っておくのではなく、継続を引数にとる普通の非同期関数化してしまえばいいんだ。お題は、これを出力する…

JavaScriptのジェネレータとDeferredを組み合わせたライブラリ

JavaScriptのジェネレータとDeferredを組み合わせるといい感じ! (JS1.7のyieldでharmonyのawait式ぽいことをする) - fujidigの雑記 でいったことをライブラリにしてみました GitHub - fujidig/deferred-generator まだ実際に使ってみていないので便利か分…

JavaScriptのジェネレータとDeferredを組み合わせるといい感じ! (JS1.7のyieldでharmonyのawait式ぽいことをする)

repl.it経由でtraceur-compilerを知った。そしてharmonyにはawait式というものがあるということを知った。 function deferredTimeout(delay) { var deferred = new Deferred(); setTimeout(function() { deferred.callback({ called: true }) }, delay); ret…

JavaScriptで非同期処理の途中で中断したいよぉお

JSDeferredのcancelだと目的のことはできなくて、それは構造上無理なんだろうなーと。 で、こんなのを書いてみたものの使いにくい。 https://gist.github.com/1200041 function Trampoline(func) { this.task = new Task(func); } Trampoline.prototype.step…