Я пытаюсь выяснить обещания ... В чем разница между простое создание запроса $ http, а затем выполнение того, является ли успешным (.success()) &, он не работает (.fail()), по сравнению с обещание (q = $ q.defer()) с q.resolve()?
ответ
Ничего. $http
методы возвращают обещания. Короче говоря, их также можно связать с помощью then
. success
и fail
являются сахаром только для разрешения и отклонения then
s.
$http
сам использует $q
. Эти службы не работают на одном уровне.
$http.get(url)
возвращает обещание, которое может быть разрешено или отклонено. Это означает, что вы используете обещание, предоставляемое службой ($ http). Внутри, $http
позвонит $q.defer()
, затем $q.resolve()
или $q.reject()
. Это вызовет либо ваш метод .success()
, либо .fail()
.
$q
- это сервис, создающий ваше собственное обещание.
Использование $q
- отличный способ узнать о обещаниях, но в вашем случае $http
уже делает эту работу за вас.
$ http legacy обещают методы успеха и ошибки/неудачи, устарели. https://docs.angularjs.org/api/ng/service/$http#deprecation-notice –
Да, успех и ошибка/неудача были устарели в пользу тогда. Но основной ответ остается прежним. '$ http' возвращает обещание, а' $ q' создает «обещание». В 'then()' у вас все еще есть две функции обратного вызова для успеха и сбой. [$ HTTP] (https://docs.angularjs.org/api/ng/service/$http) – Yves
- 1. Угловой JS 1.2-RC vs 1.0.8
- 2. возвратить ошибку из $ http.success
- 3. Угловой материал VS Materializecss
- 4. Угловой Mapbox vs Угловой листок Mapbox vs Angular google maps
- 5. UI Bootstrap vs Угловой материал
- 6. Угловой js Intellisense не работает в VS 2015 Контроллер
- 7. Угловой js $ http service: - заголовок недоступен внутри блока catch
- 8. Свойство на $ scope, установленное внутри $ http.success(), не определено вне $ http.success(). Зачем?
- 9. stop $ http.success, когда код состояния больше 300
- 10. AngularJs. Вызвать функцию jQuery в $ http.success
- 11. Как обещают получение решить без Q.resolve
- 12. AngularJS $ q.resolve(), ES6 Promise.resolve() (и другие животные)
- 13. угловой js порядок исполнения
- 14. Угловой JS проверка
- 15. Перекомпоновать угловой компонент JS?
- 16. Обновление угловой строки js
- 17. Угловой js не работает
- 18. Ошибка угловой js pagination
- 19. угловой js reloading view
- 20. Угловой JS/SQLite/Query
- 21. Угловой объект создания JS
- 22. Угловой JS с MVC
- 23. Угловой JS ng-src
- 24. Угловой JS http factory
- 25. Угловой Js Ng-Route
- 26. Угловой JS - Контроллер Неопределенный
- 27. угловой JS isNotWorking inMyProject
- 28. номера Угловой JS Фильтрация
- 29. Угловой фильтр JS Реверс
- 30. Угловой Js RouteProvider
Я не уверен, что понимаю ваш вопрос. Как вы делаете запрос '$ http' с' $ q.defer'? Если вы не сделаете запрос, то это, очевидно, разница. – Bergi