jQuery.1.8以降(thenがpipe同様の挙動をする場合)について、then()をfailハンドラ(第2引数)の指定無しで呼んだ場合、then()の戻り値のプロミスから登録したfailハンドラが動作しない。
d = h5.async.deferred();
p = d.then(function() {}); // failハンドラを渡さない
p.fail(function() {
// d.reject()でここが呼ばれるはずなのに、呼ばれない。
});
d.reject();
then()をdoneハンドラを指定せずに呼んだ場合も、d.resolve()した時にp.done()に渡したハンドラが呼ばれない。
上記のソースコード例で、h5.async.deferred()ではなく、$.Deffered()を用いた場合は、ハンドラは正しく呼ばれる。
jQuery.1.8以降(thenがpipe同様の挙動をする場合)について、then()をfailハンドラ(第2引数)の指定無しで呼んだ場合、then()の戻り値のプロミスから登録したfailハンドラが動作しない。
then()をdoneハンドラを指定せずに呼んだ場合も、d.resolve()した時にp.done()に渡したハンドラが呼ばれない。
上記のソースコード例で、h5.async.deferred()ではなく、$.Deffered()を用いた場合は、ハンドラは正しく呼ばれる。