さまざまなライブラリで用意されているようなのでいまさら感満載ですが、Deferredを作ってみましたよ。 諸般の事情で必要なのだけど、このためだけにjQueryに依存するのもあれなので・・・、ということで勉強もかねて再発明。 APIは、jQueryに合わせてみました。 CommonJS Promises/A 準拠になるはず。 詳細な仕様はこちら。実装は以下です。 define( function(){ "use strict"; /** * @interface * @template <V> value type * @template <E> error type */ var Promise = {}; /** * @param {function(V):R} successCallback * @param {function(E):R} failCallback * @retur