jquery-deferredとMochiKit.Async.DeferredのDefferdListに空リストを渡した時の非互換性
*結論古いファイル参照していただけだったのでタイトル変えました。
jquery-deferredでフクザツなことしてもちゃんと動いてくれてmochikitよりもメソッド名が短いのも慣れるとたまらなくてもうこれからはjquery+jsdeferredだぜと思ってるこのごろですが、マイナー非互換性を発見。Revision 29993にて。
new DeferredList( [ ]).addCallback( function () { console.log("hello mochikit") } ) jQuery.deferred.parallel([]).next ( function () { console.log("hello jsdeferred") } );
MochiKitのdeferredは空リストを渡すとfireするけどjsdeferred#parallelはfireしないです。fireする仕様のほうが自然なのでfireする仕様にしてもらえないでしょうか。 > id:cho45さん
--- jquery-deferred.orig.js 2009-02-12 20:30:49.000000000 +0900 +++ jquery-deferred.js 2009-02-13 10:39:31.000000000 +0900 @@ -170,6 +170,8 @@ }); })(dl[i], i) } + if (!dl.length) + ret.call(values); } else { var values = {} var num = 0; @@ -187,6 +189,8 @@ num++; })(dl[i], i) } + if (!num) + ret.call(values); } return ret; }