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を書くわけですね。。。 みたいにすることが多いです。