初心者向けのjQuery入門講座|デザイナー向けのJavaScriptライブラリ

このエントリーをはてなブックマークに追加
索引
Core:コアとなる仕組み
Selectors:セレクタ
Attributes:属性
Traversing:対象の変更
Manipulation:操作
CSS:スタイルシート
Events:イベント
Effects:演出効果
Ajax:xml等との連携
Utilities:ユーティリティ
Data:データ
Miscellaneous:諸々
Deferred:処理管理
Callbacks:コールバック
Internals:内部処理

deferred.reject( )deferredオブジェクトの状態を異常終了に移行

構文

deferredオブジェクトの状態を異常終了に移行返値:deferredオブジェクト
deferred.reject( [引数] )ver1.5〜

機能

deferred.rejectメソッドは、defferdオブジェクトの状態を「異常終了(reject)」に移行します。その結果deferred.failメソッドで設定したfunctionが実行されます。引数「引数」はdeferred.failメソッドで設定したfunctionの引数に送りたい値を設定します。

解説

deferredオブジェクトを「異常終了」させる(引数なし)

サンプル(reject/01.html)を開いてbody内にbutton要素しかないことを確認してください。jQueryでは、まず以下の部分を確認してください。1行目ではdeferredオブジェクト「dfd」を作成し、2〜4行目でdeferred.failメソッドを利用して、処理が異常終了した時の処理を設定しています。サンプルではbody要素に「error」と表示するようにしています。

var dfd = $.Deferred();
dfd.fail(function(){
	$("body").append("error");
});

続いて以下の部分を確認してください。buttonをクリックされたら、deferred.rejectメソッドを利用してdeferredオブジェクトを異常終了させます。

$("button").click(function(){
	dfd.reject();
});

そのためbuttonをクリックすると、deferredオブジェクトがi異常終了してfailメソッドで設定した処理が実行されます。結果としてbody要素内に「error」と表示されます。

deferredオブジェクトを「異常終了」させる(引数あり)

deferred.resolveメソッドは引数で情報を送ることができます。サンプル(reject/02.html)を開いてbody内の構成がreject/01.htmlと同じ事を確認してください。

jQueryは少し変更されており、以下の様にdeferred.failメソッドメソッドで設定しているfunctionで引数を受け取るようにしています。引数は変数strで受け取り、3行目の処理でbody内の要素に表示するようにしてます。

var dfd = $.Deferred();
dfd.fail(function(str){
	$("body").append(str);
});

次に以下の部分を確認してください。deferred.rejectメソッドの引数に「error!」と設定しました。結果としてbuttonをクリックすると、failメソッドのfunctionに引数が渡され、body要素内に「error!」と表示されます。

$("button").click(function(){
	dfd.reject("error!");
});

引数を複数送りたい場合は、カンマで区切って設定します。→参考:サンプル(reject/02b.html

var dfd = $.Deferred();
dfd.fail(function(str1, str2){
	$("body").append(str1 + " " + str2);
});			
$("button").click(function(){
	dfd.reject("hello", "world");
});

関連項目

引数としてコンテキスト(thisとして利用するobject)を渡したい場合はdeferred.rejectWithメソッドを利用してください。