0
나는 ES6와 AngularJS를 사용하는 프로젝트를 가지고 있으며 AnglesJS $ q 약속은 동기식이지만 ES6에서는 약속하지 않습니다. 권리? 질문은 무엇입니까, 차이점은 무엇입니까? $ q 또는 ES6은 언제 사용해야합니까? 동기 및 비동기의 차이점을 알고 있지만 new Promise
과 AngularJS $q
사이에 혼동을 느낍니다. here
나는 ES6와 AngularJS를 사용하는 프로젝트를 가지고 있으며 AnglesJS $ q 약속은 동기식이지만 ES6에서는 약속하지 않습니다. 권리? 질문은 무엇입니까, 차이점은 무엇입니까? $ q 또는 ES6은 언제 사용해야합니까? 동기 및 비동기의 차이점을 알고 있지만 new Promise
과 AngularJS $q
사이에 혼동을 느낍니다. here
에서
레이즈 명령문 약 $q
동시성 애초에 ngMock
과 부 검사에 적용된다.
$q
약속은 생산되는 동기의 할 수 다음과 같습니다
let foo;
$q.resolve().then(() => { foo = 1 });
$rootScope.$digest();
console.log(foo === 1);
그리고 그들은, 단위 테스트에서 동기로을 가정 때문에 모든 AngularJS와 비동기 행동 ($timeout
에 대한 책임이 있습니다 서비스, $http
, etc.)는 완전히 동기식 테스트를 수행하기 위해 ngMock으로 조롱됩니다.
it('...', inject(($q) => {
let foo;
$q.resolve().then(() => { foo = 1 });
$rootScope.$digest();
expect(foo).toBe(1);
}));
ES6의 약속은 디자인에 의해 비동기 및 then
콜백 다음 틱에서 실행하는 동안 :
it('...', (done) => {
let foo;
Promise.resolve(1).then(() => {
foo = 1;
expect(foo).toBe(1);
})
.then(done, done.fail);
});
당신은 무엇을 의미합니까 "$ q를 약속 동기"? 나는 Angular를 모르지만 내가하고 싶지는 않지만 그들의 문서를 보는 것조차별로 도움이되지 못했습니다. 우리가 비동기 코드를 작성하고 (그리고 콜백 지옥을 피하는) 약속의 요점이 아닌가? – helb
'맞습니까? '- 잘못되었습니다. 약속은 비동기식으로 정의됩니다. $ q와 ES6 약속의 차이점은 $ q 약속 (적어도 몇 달 전에는 해결할 수 있음)이 아직 약속/A + 규격에 부합하지 않는다는 것입니다. –
$ q 약속 (적어도 몇 개월 전) Promise/A + spec compliant' 그것은 무엇을 의미합니까? – GeoCom