Skip to content

then()をfailハンドラを渡さずに呼んだ場合、then()の戻り値のプロミスのfailハンドラが動作しない #321

@fukudayasuo

Description

@fukudayasuo

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()を用いた場合は、ハンドラは正しく呼ばれる。

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions