データを戻すコールバック関数を受け入れる関数があります。より良い実践のために、これを遅延オブジェクトに変換できますか?
これが私が得たものです:
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);
});
キャッシュアプローチを維持しながら、どうすればそれを約束のように使用できますか?
this.getChapters().done(function (data) {
console.log(data);
});