jQuery/Q promises
Понеже сега гледам подготовката за изпита, отново след лекцията ми направи впечатление как ползваме ajax заявките и промисите в рикуестъра. Исках да отбележа нещо, което може да спести някой и друг ред код, както и грешки понякога. Не знам дали беше казано, но $.ajax директно ни връща промис (всъщност е jqXHR обект, но той имплементира промис интерфейса, поне в новите версии). Макар и jQuery да има някои недостатъци като имплементация на промисите мисля, че за нашите нужди, т.е. основно ajax заявки си е напълно достатъчно. Но ако все пак искаме да ползваме Q - в самата документация на библиотеката автора казва, че Q може директно да конвертира промиса - нужно е просто да подадем ajax заявката в Q функцията. И не е нужно да минаваме през defer, resolve, reject и т.н.
Т.е. вместо да пишем
var defered= Q.defer();
$.ajax({
method:....,
url:.....,
headers:.....,
success: function(...){
....},
error: .....
})
return defer.promise;
Може директно
return Q($.ajax({
method:...,
url:.....
});