私はデータを戻すコールバック関数を受け入れる関数を持っています。これをより良い練習のために遅延オブジェクトに変換できますか?ここでコールバックサンプルを遅延オブジェクトに変換するにはどうすればよいですか?
は、私が得たものである:
var chapters;
var getChapters = function (fnLoad) {
//CACHE DATA IF APPLICABLE
if (!chapters) {
//CALL JSON DATA VIA AJAX
$.getJSON('/chapters.txt')
.done(function (json) {
//STORE DATA IN LOCAL STORAGE
chapters = Lawnchair(function() {
this.save(json, function (data) {
//CALL CALLBACK ON DATA
fnLoad(data);
});
});
});
} else {
//RETURN ALREADY CREATED LOCAL STORAGE
chapters.all(function (data) {
//CALL CALLBACK ON DATA
fnLoad(data);
});
}
};
それから私は、単にこのようにそれを使用します。キャッシュ・アプローチを維持しながら、
this.getChapters(function (data) {
console.log(data);
});
は、どのように私も約束のようにそれを使用することができますか?私はすでにあなたは大きな精神的な飛躍を取るとchapters
の約束の代わりchapters
自分自身を保存する場合は、コードを大幅に簡略化されますが、答えを受け入れている参照
this.getChapters().done(function (data) {
console.log(data);
});
jQueryのajaxメソッドは、遅延オブジェクトを拡張します。あなたはすでにそれを使用しています... –
私はデータを操作して、データを返す前に真ん中の "Lawnchair"を使用しているので、私はajaxオブジェクトを正しく返しません。 – TruMan1
コメントはすべて大文字で入力してください。 – Eric