Mam funkcję, która akceptuje funkcję zwrotną, w której przekazuję dane z powrotem. Czy można to przekształcić w obiekt odroczony, aby uzyskać lepszą praktykę?Jak przekonwertować próbkę oddzwonienia na obiekt odroczony?
Oto co mam:
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);
});
}
};
Potem po prostu używać go tak:
this.getChapters(function (data) {
console.log(data);
});
Jak mogę używać go jak obietnica choć przy zachowaniu podejścia cache?
this.getChapters().done(function (data) {
console.log(data);
});
Metody ajax jQuery's rozszerzają obiekt odroczony. Już go używasz ... –
Ale zauważ, że manipuluję danymi i korzystam z "Lawnchair" gdzieś pośrodku przed przekazaniem danych, więc nie mogę zwrócić obiektu ajax poprawnie? – TruMan1
Dlaczego twoje komentarze są we wszystkich limitach? – Eric