Ich möchte einige API aufrufen, wenn der Status 'bereit' ist und dann nur einmal nach dem löst ich einige Anweisungen ausführen möchten.Umgang mit bedingten Angular Promises
Wenn der Status nicht ready
ist Ich möchte nicht die API-Aufruf, wird aber weiterhin die Anweisungen ausführen.
ich es so gemacht haben:
if(job.status === 'ready')
//Makes a promise to fetch the progress API details for ready batches only
var promise = HttpWrapper.send('/api/jobs/'+job.job_id+'/getDetails', { "operation": 'GET' });
//Once the promise is resolved, proceed with rest of the items
$q.all([promise])
.then(function(result) {
//Because for not ready batches promise object and it's response wuld be undefined
if(result[0] !== undefined){
//Create a property that would hold the progress detail for ready batches
job.pct = result[0].pct;
}
//Want to execute these lines no matter what
vm.job = job;
vm.loading = false;
Ich weiß, dass ich ein paar schlechte mache hier Codierpraktiken.
Ich brauche möglicherweise nicht $q.all
überhaupt.
Aber ich kann nicht herausfinden, wie die Situation in den Griff - weil die letzten 2 Zeilen
ausgeführt würdenFor ready batches within then only after that promise resolves, but for other batches there is no promise. So they can get executed quickly.
Wie kann ich sie effektiv schreiben, so dass sowohl die Situationen behandelt werden?
Sie benötigen einen anderen Block mit den letzten 2 Zeilen. –
@DeepthiS Ich möchte, dass sie auch für if block ausführen. – StrugglingCoder