投稿数 585
公開から 2940

JavaScript deferredのthenとdoneの違い


Categories: javascript

いきさつ

いつもわすれるので書いておく。

まずdoneは??

doneはPromiseがresove(成功)を返した場合です。

じゃあthenは??

doneとfailのショートハンド..というか一括で定義できる方法です。 第1引数は成功パターン。 第2引数は失敗パターン。

注意点としてはcallbackです。 もっというとfunction型です。 関数実行ではないので注意!!

//ok
.then(function(){
    console.log();
})
// ng
.then(console.log())

じゃあdoneだけでよくね?

いや!! いい忘れてました!! もうひとつ大きな特徴があります。 thenはプロミスを返してつなげる(チェーン)することができます。

なので

then().then().then().done();

実際にはthenの中にプロミスを返すcallbackを書くわけですね。。。 みたいにすることが多いです。