setSource
コールバック引数を取ります:
editor.setSource = function(callback) {
// do editor things
callback();
}
次に、実行するコードの次のブロックをコールバックとして渡します。
editor.setSource(function() {
// do some other things
});
jQuery の遅延オブジェクトにアクセスできる場合は、ここでそれらを利用できます。
- 新しい遅延オブジェクトを作成します。
- タイムアウトを開始して、長いタスクを実行します。
- 遅延オブジェクトを返します。
- タイムアウトで、タスクが完了したら、 を呼び出します
deferred.resolve
。
editor = {
setSource: function() {
var deferred = $.Deferred();
console.log("Beginning editor.setSource...");
setTimeout(function() {
// This function took a while to occur
deferred.resolve();
}, 3000);
return deferred;
}
}
$.when(editor.setSource()).then(function() {
console.log("Editor is done!");
});
AJAX、アニメーション、または遅延オブジェクトを使用する別の jQuery タスクを既に実行している場合は、独自の遅延オブジェクトを作成する代わりに、その結果の値を返すことができます。
editor = {
setSource: function() {
return $.get({
url: "myurl.com/mypage",
data: $("#myform").serialize()
});
}
}
$.when(editor.setSource()).then(function() {
console.log("Editor is done!");
});
遅延オブジェクトを解決または拒否する方法と、それらの処理方法を確認してください。