Was macht $ q.defer () wirklich?

Ich lerne etwas über Angular JS und im Moment versuche ich, etwas über Versprechen und asynchrone Programmierung zu verstehen$q.defer(). Mein Punkt ist der folgende: Wenn Leute mit Versprechungen arbeiten, tun sie normalerweise so etwas, wenn man bedenkt, dass $ q bereits verfügbar ist

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 macht das wirklich? Wenn wir das tunvar deferred = $q.defer() Es schaltet sofort die gesamte Ausführung dieser Funktion auf einen anderen Thread um und gibt das Versprechen als Referenz auf die Ergebnisse dieser Operation zurück, die dort noch ausgeführt wird.

Ist dies die Art und Weise, wie wir beim Erstellen von asynchronen Methoden denken sollten?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage