Какая разница между Promiseи Observableв Angular? Пример каждого из них поможет понять оба случая. В каком сценарии мы можем использовать каждый случай?
У меня есть служба AngularJS, которую я хочу инициализировать с некоторыми асинхронными данными. Что-то вроде этого: myModule.service('MyService', function($http) { var myData = null; $http.get('data.json').success(function (data) { myData = data; }); return { setData: function (data) { myData = data; }, doStuff: function () { return myData.getSomeData(); } }; }); Очевидно, …
Учитывая запрос Ajax в AngularJS $http.get("/backend/").success(callback); Каков наиболее эффективный способ отменить этот запрос, если запущен другой запрос (такой же сервер, например, другие параметры).
Я смотрю на этот пример из документации Angular, $qно думаю, что это, вероятно, относится к обещаниям в целом. Приведенный ниже пример дословно скопирован из документации с включенным комментарием: promiseB = promiseA.then(function(result) { return result + 1; }); // promiseB will be resolved immediately after promiseA is resolved and its value …
Итак, у меня есть ситуация, когда у меня есть несколько цепочек обещаний неизвестной длины. Я хочу, чтобы какое-то действие выполнялось, когда все ЦЕПИ были обработаны. Это вообще возможно? Вот пример: app.controller('MainCtrl', function($scope, $q, $timeout) { var one = $q.defer(); var two = $q.defer(); var three = $q.defer(); var all = …
У меня есть Promise. Я создал его, чтобы при необходимости отменить AJAX-запрос. Но поскольку мне не нужно отменять этот AJAX, я никогда не разрешал его, и AJAX успешно завершился. Упрощенный фрагмент: var defer = $q.defer(); $http({url: 'example.com/some/api', timeout: defer.promise}).success(function(data) { // do something }); // Never defer.resolve() because I don't …