이 예제에서는 동기식 코드를 비동기 적으로 만들려고 시도하고 있습니다. 내가 발견 한 모든 예제는 아래의 docs.angularjs.org .. $ q에서 첫 번째 예를 제외하고는 반대의 작업을 수행했습니다.
doc은 사용하려고하는 $ q 생성자를 나열합니다. 안타깝게도 jsfiddle Angular libraries 1.1.1과 1.2.1은이 예제에서와 같이 $ q 객체 (함수가 아님)를 제공합니다. 대신, 나는 예제를 제공하고 누군가가 버그를 볼 수 있기를 바랍니다.
https://docs.angularjs.org/api/ng/service/ $ q를 내가 볼 필요가
"이 발생하지 않습니다!" 실행할 줄.
f = function(name) {
return $q(function(resolve, reject) {
console.log "this does not happen!"
resolve('great')
});
}
f(name).then(function(result) {
console.log 'result', result
}, function(error) {
console.log 'error', error
});
로깅 대신 "이것은 발생하지 않습니다!" "위대한"다음에, 실제로 함수가 $ q 로그에 전달 된 것을 볼 수 있습니다 ::
result function(resolve, reject) {
console.log "this does not happen!"
resolve('great')
}
내가 잘못 한 것을 누군가 볼 수 있습니까?
내가 다시 전화와 doSomethingAsync 방법을 갖는 사치가 없습니다 : (지퍼 게시 등)
는를 생성자 방법을 사용하고 다음을 수행 할 수 있습니다 . 그것은 전형적인 $ q.defer() 메소드로는 수행 할 수없는 것처럼 보입니다. 한 가지 예는 브라우저에서 localstorage를 모방 한 파일 IO을 래핑하는 것입니다. nodejs 측은 실제 표준을 모방하기 위해 파일 동기면을 사용합니다. 그것은 동기식입니다. – jcalfee314