並行して処理を行う非同期的処理を、直列に実行することが出来るものが$.deferredオブジェクトです。
このオブジェクトを作るときは、リテラル表記で、var a = $.deferred();、最初の処理を終了したことを伝えるときは、return a.promise();です。
$.deferred()を返すと、返した先で勝手に状態遷移させられるのを防ぐため、promiseという$.deferredから一部のメソッドを抜いたオブジェクトを返すそうですが、
この「返した先で勝手に状態遷移させられるのを防ぐため」がいまいち、何をいっているのか分かりません。初期状態であるunresolvedから、状態を変更するさいは、a.resolve()かa.reject()と記述する必要がありますが、
returnすると知らない間に、再び状態が変更してしまうということでしょうか。
それと、$.deferredの「$.」は、変数名で利用できる単なる識別子(ドットを除くと、jquery()オブジェクトの略称)だと認識しておるのですが、何故ドルドットなのでしょうか。phpなどで変数を利用するときも、$を使いますが関係はありますか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。