Я использую Angular JS на странице salesforce visualforce.Я написал этот код, чтобы получить некоторую информацию с сервера.Это асинхронный вызов.
var deferred = $q.defer();
Visualforce.remoting.Manager.invokeAction( //You can related this with any asynchronous service
'{!$RemoteAction.somepage.someMethod}',
param,
function(result,event){
if(event.type=='exception'){
deferred.reject(event.message);
}
else{
deferred.resolve(result);
}
}
);
return deferred.promise;
Теперь кто-то сказал мне, что «Используйте обещание вместо отсрочки» (но не объяснил, почему.) Этот код работает абсолютно нормально, но кажется, что некоторыешаблонный способ сделать это (я не уверен, как, но я где-то читал.).Теперь я увидел много документов и ресурсов и попытался выяснить, как лучше всего это сделать.
Не могли бы вы объяснить , почему это не очень хороший подход ?Также как я могу переписать этот код с лучшим подходом ?
Было бы очень полезно, если бы вы предоставили свои ответы на простом языке, так как я довольно новичок в Angular, и я был на многих ссылках, поэтому, пожалуйста, не добавляйте больше ссылок на меня.Спасибо.
Редактировать 1:
Я пытался реализовать реализацию ES6 , но в функции .then
, когда я просто обновляю переменнуюон не запускает цикл дайджеста, что означает, что изменения не отражаются на пользовательском интерфейсе, но он прекрасно работает с моим кодом и кодом, предоставленным @smnbbrv.Можете ли вы представить, почему это происходит?