Я довольно хорошо знаком с тем, как работает $q
, и я использую его в angularjs, чтобы подождать, пока будут разрешены единственные обещания, и несколько обещаний для решения с $q.all()
.
Вопрос в том, что я не уверен, если это возможно сделать (и если оно будет работать правильно): Могу ли я ждать единственного обещания для решения, но затем также запускать некоторый код, когда все мои обещания также разрешаются. . После успеха обратные вызовы отдельных обещаний закончили ... к примеру:
var promises = [];
for(i=1, i<5, i++){
var singlePromise = SomeSevice.getData();
promises.push(singlePromise);
singlePromise.then(function(data){
console.log("This specific promise resolved");
});
}
// note: its important that this runs AFTER the code inside the success
// callback of the single promise runs ....
$q.all(promises).then(function(data){
console.log("ALL PROMISES NOW RESOLVED"); // this code runs when all promises also resolved
});
Мой вопрос, делает эту работу, как я думаю, что он делает, или есть какой-то странный асинхр, индетерминисти- результат риска?
Hi @lonesomeday, я внес небольшое изменение в мой вопрос; основным требованием является то, что обратный вызов all() запускается после успешного завершения обратного вызова отдельных обещаний! – rex
Я видел это и удалял свой комментарий, потому что он больше не был актуальным. – lonesomeday
Итак, ваш вопрос на самом деле, если 'callback.all' всегда запускается ** после ** последнего обратного вызова' singlePromise.then'? – devqon