Trotz Empfehlungen zur Vermeidung von jQuery-Versprechen können Entwickler beim Verketten asynchroner jQuery-Funktionen ohne Verwendung vor Herausforderungen stehen jQuerys Promise-Handling-Mechanismen wie .then() oder .when(). Um dieses Problem zu lösen, sollten Sie den folgenden Ansatz in Betracht ziehen:
jQuery-Versprechen sind mit JavaScript-Versprechen interoperabel. Dies bedeutet, dass Sie sie problemlos in Ihrem Code kombinieren können. Alle seriösen Bibliotheken und nativen Versprechen akzeptieren Thenables aus jeder Implementierung. Infolgedessen können Sie in den meisten Fällen so programmieren, als würden alle Ihre Versprechen dieselbe Implementierung verwenden.
Wenn Sie jedoch sicherstellen müssen, dass alle .then()-Aufrufe Ihre bevorzugte Implementierung verwenden oder nicht implementieren Bei Standardfunktionen ist es wichtig, alle Versprechen, auf die Sie Methoden direkt aufrufen, explizit umzuwandeln. Zum Beispiel:
Promise.all([$.ajax(...), $.ajax(...)]) // Just works (native `then`)
$.ajax(...) // jQuery promise Promise.resolve($.ajax(...)) // Explicit cast .then(function(data) { // Native `then` return $.ajax(...); // Just works }) .catch(...) // Use features of native promise
Denken Sie daran, dass das Mischen von jQuery- und JavaScript-Versprechen im Allgemeinen kein Problem darstellt. Wenn Sie jedoch eine explizite Kontrolle über die Implementierung benötigen, verwenden Sie den expliziten Casting-Ansatz.
Das obige ist der detaillierte Inhalt vonWie vermeide ich jQuery-Promises in verketteten Funktionen bei gleichzeitiger Beibehaltung asynchroner Vorgänge?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!