앵귤러 블루버드는 어떻게 사용하나요?
블루버드와 함께 앵글을 사용해 보았습니다.
HTML:
<body ng-app="HelloApp">
<div ng-controller="HomeController">{{name}} {{also}}</div>
</body>
JS:
// javascript
var app = angular.module('HelloApp', []);
app.controller("HomeController", function ($scope) {
var p = Promise.delay(1000).then(function () {
$scope.name = "Bluebird!";
console.log("Here!", $scope.name);
}).then(function () {
$scope.also = "Promises";
});
$scope.name = "$q";
$scope.also = "promises";
});
window.app = app;
[휘청]
하지만, 아무리 노력해도, 그것은 계속 남아있었다."$q promises"업데이트하지 않았습니다.매뉴얼을 추가했을 경우는 예외입니다.$scope.$apply차라리 피하고 싶군요
Bluebird와 AngularJS를 함께 사용하려면 어떻게 해야 하나요?
($q이면 가능하기 때문에 가능함을 알고 있습니다.
저는 여기서 받은 Bluebird 2.0을 사용하고 있습니다.
이것은 가능하고, 심지어 꽤 쉽다!
앵글이 한 약속을 보면 블루버드를 데려와야 해$evalAsync똑같은 행동을 할 수 있도록 어딘가에서요
이 경우 두 구현 모두 Promise/A+를 준수한다는 것은 서로 상호 운용할 수 있다는 것을 의미합니다.$q코드와 Bluebird 코드. 즉, Angular 코드에 있는 Bluebird의 모든 기능을 자유롭게 사용할 수 있습니다.
Bluebird는 다음과 같은 기능을 제공합니다.
// after this, all promises will cause digests like $q promises.
function trackDigests(app) {
app.run(["$rootScope",function ($rootScope) {
Promise.setScheduler(function (cb) {
$rootScope.$evalAsync(cb);
});
}]);
}
이제 다음 항목만 추가하면 됩니다.
trackDigests(app);
의 뒤를 잇다var app = ...모든 것이 예상대로 작동하게 됩니다.보너스 포인트의 경우 Bluebird를 서비스에 배치하여 글로벌 네임스페이스에서 사용하지 않고 삽입할 수 있도록 합니다.
이 동작을 나타내는 [만지작거리다]가 있습니다.
Bluebird의 모든 기능 외에$q더 중요한 것 중 하나는 Bluebird가 뛰지 않는다는 것이다.$exceptionHandler대신 처리되지 않은 거부는 자동으로 추적되므로throw블루버드와의 약속을 풀어낼 수 있을 거예요더 많은 전화Promise.longStackTraces()디버깅에 많은 도움이 됩니다.
라이브러리 Angular Bluebird 약속 대체$q에 봉사하다.bluebird.$http블루버드를 통과하다
언급URL : https://stackoverflow.com/questions/23984471/how-do-i-use-bluebird-with-angular
'codememo' 카테고리의 다른 글
| Angular에서 이진 데이터를 읽는 방법ArrayBuffer의 JS? (0) | 2023.02.16 |
|---|---|
| Angular JS를 사용한 모바일 애플리케이션 (0) | 2023.02.16 |
| spring boot war(tomcat 포함 안 함) (0) | 2023.02.16 |
| 스프링 부트 - java.lang.ClassNotFoundException: javax.servlet.Servlet Context에서 Embedded Web Application Context를 시작할 수 없음 (0) | 2023.02.16 |
| 리액트 리액트 리액트 리액트 리액트 리액트 리액트 리액트 리 (0) | 2023.02.16 |