Ich habe einige alte JavaScript-Bibliotheken, die jQuery promises als Rückgabeobjekte von Funktionsaufrufen verwenden. Ich verwende jetzt AngularJS, die die $q service (inspiriert von der Q library) verwendet. Hat jemand etwas generischen JavaScript-Code, um diese zwei verschiedenen Versprechen Implementierungen kompatibel zu machen, so dass jQuery Versprechen verwendet werden kann, als ob es wo $ q verspricht? Oder etwas ähnliches?
Machen Sie jQuery aufgeschoben/Versprechen und AngularJS $ q Zurückgestellt/Versprechen kompatibel
Antwort
Versprechen von Dritten können mit $q.when(thirdPartyPromise)
verpackt werden, um in $ q Versprechen umgewandelt zu werden. Wenn das thirdPartyPromise
verrechnet wird, wird das $ q-Versprechen entsprechend aufgelöst und $scope.$apply()
wird aufgerufen.
Danke! Verpasste das in den Dokumenten. –
Ich bin froh, dass $ q das von Q übernommen hat. Der Trick besteht darin, dass alles, was 'promise.then (cb, eb)' implementiert, in ein Versprechen eines anderen Typs umgewandelt werden kann, wobei der Rückgabewert ignoriert wird. Es heißt "Wendigkeit". –
@KrisKowal, wenn der '$ q.when()' Wrapper woks, dann wird das vermutlich auch die einfache Form des Zwanges '$ q (thirdPartyPromise)'? –
Vielen Dank für Ihre Antwort. Ich kannte das hier, aber es ist mühsam, es überall anzuwenden. Die Antwort unten ist mehr, was ich (und wahrscheinlich andere) gesucht habe. –