나는 다리 당 비동기 작업이 개 별도의 덩어리로, 단계의 두 시리즈를 분기 오전 :
Time Threads forking and joining:
| *
| / \
V / \
+-----+ +-----+
/ \
/ \
$http.get('/foo') $http.get('/baz')
| |
V V
$http.get('/bar') $http.get('/blap') <-- Problem children
| |
V V
\ /
\ /
+------+ +------+
\ /
\/
+
|
$log.log("Carry on")
는 "문제 아이 수준"는에 $q.defer()
를 사용하지 않고 결합/위의 포크 (fork)를 할 수 있습니까?
이
내가/위의 포크를 할 당신은 체인에 다음 기능의 내부 약속을 반환 할 수 있습니다$q.defer()
var left = $q.defer()
var right = $q.defer()
$http.get('/foo')
.success(function() {
$http.get('/bar')
.success(function() {
left.resolve()
})
})
$http.get('/baz')
.success(function() {
$http.get('/blap')
.success(function() {
right.resolve()
})
})
$q.all([left.promise,right.promise])
.then(function() {
$log.log("Carry on")
})
무엇 코드를 어떻게 보이게할까요? – John
'$ q.defer()'객체를 명시 적으로 관리하지 않고 약속들을 연결할 수 있습니까? –