deferred.always()【《Deferred 成功処理・失敗処理》共通ハンドラ追加】
メモ
- Deferred オブジェクト が成功状態 または 失敗状態 へ遷移時に、 呼び出されるハンドラを追加
- Deferred オブジェクト が返却される為、メソッドチェーンが可能
- ハンドラの追加順に呼び出し
- 状態遷移後の追加ハンドラは即時呼び出し
- その他詳細は、状態管理・非同期処理 (Deferred Object)
構文
関連
- jQuery リファレンス メモ
- deferred.done()【《Deferred 成功処理》ハンドラ追加】
- deferred.fail()【《Deferred 失敗処理》ハンドラ追加】
- deferred.progress()【《Deferred 状態通知》ハンドラ追加】
- deferred.resolve()【Deferred 成功処理】
- deferred.resolveWith()【Deferred 成功処理 (this参照指定)】
- deferred.reject()【Deferred 失敗処理】
- deferred.rejectWith()【Deferred 失敗処理 (this参照指定)】
- 状態管理・非同期処理 (Deferred Object)
- jQuery (英語)
例
<p id="output" style="border:1px black solid; padding:1px 5px;">【出力】</p>
<script>
var funcAlways1 = function(p) { $("#output").append('<br>funcAlways1 ("' + p + '")' ); };
var funcAlways2 = function(p) { $("#output").append('<br>funcAlways2 ("' + p + '")' ); };
var funcAlways3 = function(p) { $("#output").append('<br>funcAlways3 ("' + p + '")' ); };
var funcAlways4 = function(p) { $("#output").append('<br>funcAlways4 ("' + p + '")' ); };
var funcAlways5 = function(p) { $("#output").append('<br>funcAlways5 ("' + p + '")' ); };
var df1 = $.Deferred();
df1.always( funcAlways1, funcAlways2 )
.always( [ funcAlways3, funcAlways4 ] );
df1.resolve( "resolve" );
df1.always( funcAlways5 );
$("#output").append("<br>");
var df2 = $.Deferred();
df2.always( funcAlways1, funcAlways2 )
.always( [ funcAlways3, funcAlways4 ] );
df2.reject( "reject" );
df2.always( funcAlways5 );
</script>
【出力】