Ich lerne über Angular JS und im Moment versuche ich über Versprechen und asynchrone Programmierung zu verstehen, und ich habe diesen Zweifel über $q.defer()
. Mein Punkt ist die folgende: In der Regel, wenn die Menschen mit dem Versprechen arbeiten sie so etwas tun, dass $ q Berücksichtigung bereits verfügbar
function someAsyncFunction() {
var deferred = $q.defer();
/* Do things and if everything goes fine return deferred.resolve(result)
otherwise returns deferred.reject()
*/
return deferred.promise;
}
Was ist das wirklich tun? Wenn wir var deferred = $q.defer()
tun, schaltet es sofort die gesamte Ausführung dieser Funktion auf einen anderen Thread um und gibt das Versprechen zurück, das eine Referenz auf die Ergebnisse dieser Operation ist, die dort noch ausgeführt wird?
Ist dies die Art und Weise, über die wir beim Erstellen von asynchronen Methoden nachdenken sollten?
JavaScript ist single threaded (ohne Bahnarbeiter) – Lucius
Sehr gute Erklärung in AngularJS API für $ q gegeben [link] (https: // docs .angularjs.org/api/ng/service/$ q) – ravi