Heim WeChat-Applet Mini-Programmentwicklung Der Implementierungsprozess der asynchronen Prozessverarbeitung durch Promise im WeChat-Applet

Der Implementierungsprozess der asynchronen Prozessverarbeitung durch Promise im WeChat-Applet

May 15, 2018 pm 05:10 PM
promise 小程序 流程

In diesem Artikel werden hauptsächlich relevante Informationen zu den detaillierten Beispielen für die Verwendung von Promise für die asynchrone Prozessverarbeitung in WeChat-Miniprogrammen vorgestellt. Hier finden Sie eine detaillierte Erklärung zur Verwendung von Promise zur Verarbeitung asynchroner Prozesse und stellen spezifische Implementierungsschritte bereit Weiter

Eine detaillierte Erklärung eines Beispiels für die Verwendung von Promise für die asynchrone Prozessverarbeitung in einem WeChat-Applet

Wir wissen, dass JavaScript in einem einzelnen Prozess ausgeführt wird. und synchrone Vorgänge wirken sich auf die Ausführung des Programms aus. Wenn beispielsweise in einem Browser-Seitenprogramm die Ausführung eines Teils synchronisierten Codes lange dauert (z. B. eine große Schleifenoperation), bleibt die Seite hängen.

Daher werden in JavaScript einige asynchrone Funktionen bereitgestellt, um dem Programm Leistungs- und Erfahrungsvorteile zu bieten. Beispielsweise kann der Code in setTimeout(); oder in Webseiten ausgeführt werden, die wir mit der Ajax-Methode erstellen asynchrone Datenanfrage an den Server. Diese asynchronen Codes blockieren den aktuellen Schnittstellenhauptprozess nicht und die Schnittstelle kann weiterhin flexibel arbeiten. Die entsprechende Verarbeitung erfolgt nach Abschluss der asynchronen Codeausführung.

Ein typischer asynchroner Code sieht so aus:

function asyncFunc(callback) {
 setTimeout(function () {
  //在这里写你的逻辑代码
  //...

  //逻辑代码结束,执行一个回调函数
  callback();
 }, 5000);
}
Nach dem Login kopieren

oder:

function getAccountInfo(callback, errorCallback) {
 wx.request({
  url: '/accounts/12345',
  success: function (res) {
   //...
   callback(data);
  },
  fail: function (res) {
   //...
   errorCallback(data);
  }
 });
}
Nach dem Login kopieren

Dann nennen wir ihn so:

asyncFunc(function () {
 console.log("asyncFunc() run complete");
});

getAccountInfo(function (data) {
 console.log("get account info successfully:", data);
}, function () {
 console.error("get account info failed");
});
Nach dem Login kopieren

Dies ist eine Möglichkeit, Rückruffunktionen zu verwenden, um den Fluss der Codeausführung zu steuern. Das scheint gut und leicht zu verstehen.

Wenn wir jedoch zu viele asynchrone Vorgänge in einem Codeabschnitt haben und wir sicherstellen müssen, dass diese asynchronen Vorgänge in der richtigen Reihenfolge ausgeführt werden, sieht unser Code sehr schlecht aus, etwa so:

asyncFunc1(function(){
 //...
 asyncFunc2(function(){
  //...
  asyncFunc3(function(){
   //...
   asyncFunc4(function(){
    //...
    asyncFunc5(function(){
      //...
    });   });
  });
 });
});
Nach dem Login kopieren

Die Lesbarkeit und Wartbarkeit eines solchen Codes kann man sich vorstellen. Das eigentliche Problem mit der Callback-Funktion ist außerdem:

Sie nimmt uns die Fähigkeit, die Schlüsselwörter „return“ und „throw“ zu verwenden.

Was sind also die Möglichkeiten, dieses Problem zu verbessern? Die Antwort lautet: Ja, die Entstehung des Konzepts des Versprechens löst all dies gut. In Bezug auf Promise gibt es nach der Suche viele Einführungen. Ich werde hier hauptsächlich darüber sprechen, wie wir es zur Lösung unserer Probleme verwenden.

Lassen Sie uns einen Blick darauf werfen, wie das obige Beispiel aussehen würde, wenn wir Promise verwenden würden. Lassen Sie uns zunächst diese Funktionen in Promise ändern:

function asyncFunc1(){
 return new Promise(function (resolve, reject) {
  //...
 })
}

 
// asyncFunc2,3,4,5也实现成跟asyncFunc1一样的方式...
Nach dem Login kopieren

Schauen Sie sich dann an, wie sie funktionieren Dies:

asyncFunc1()
 .then(asyncFunc2)
 .then(asyncFunc3)
 .then(asyncFunc4)
 .then(asyncFunc5);
Nach dem Login kopieren

Auf diese Weise werden diese asynchronen Funktionen nacheinander der Reihe nach ausgeführt.

ES6 unterstützt Promise nativ, aber in Umgebungen, in denen Promise nicht nativ unterstützt wird, verfügen wir über viele Bibliotheken von Drittanbietern, die es unterstützen, wie z. B. Q.js und Bluebird. Zusätzlich zu den Standard-Promise-APIs bieten sie im Allgemeinen einige nicht standardmäßige, aber sehr nützliche APIs, die die Steuerung asynchroner Prozesse eleganter machen.

Aus der API-Dokumentation des WeChat-Applets können wir ersehen, dass viele Funktionen in der vom Framework bereitgestellten JavaScript-API tatsächlich asynchron sind, wie z. B. wx.setStorage(), wx.getStorage(), wx.getLocation () usw. sind auch die bereitgestellten Callback-Verarbeitungsmethoden. Durch Übergabe der Erfolgs-, Fail- und Complete-Callback-Funktionen in den Parametern kann der Erfolg oder Misserfolg des Vorgangs separat verarbeitet werden.

Zum Beispiel:

wx.getLocation({ 
 type: 'wgs84', 
 success: function(res) { 
  var latitude = res.latitude 
  var longitude = res.longitude 
  var speed = res.speed 
  var accuracy = res.accuracy 
 },
 fail: function() {
  console.error("get location failed")
 }
})
Nach dem Login kopieren

Können wir dafür sorgen, dass die asynchrone API des WeChat-Applets Promise unterstützt? Die Antwort lautet: Ja, natürlich können wir Promise verwenden, um diese APIs einzeln zu verpacken, aber das ist immer noch ziemlich mühsam. Da das Parameterformat der API des Miniprogramms jedoch relativ einheitlich ist, akzeptiert es nur einen Objektparameter und die Rückrufe werden in diesem Parameter festgelegt. Daher bietet dies Komfort für unsere einheitliche Verarbeitung und wir können einen Nicht-Objektparameter schreiben. Aufdringliches Tool. Methode zum Abschließen einer solchen Arbeit:

Angenommen, wir schreiben diese Tool-Methode in eine Datei mit dem Namen util.js:

var Promise = require('../libs/bluebird.min')  //我用了bluebird.js
function wxPromisify(fn) { 
 return function (obj = {}) {  
  return new Promise((resolve, reject) => {   
   obj.success = function (res) {    
    resolve(res)   
   }   

   obj.fail = function (res) {    
    reject(res)   
   }   

   fn(obj)  
  }) 
 }
}

module.exports = { 
 wxPromisify: wxPromisify
}
Nach dem Login kopieren

Danach schauen wir uns an, wie man sie verwendet Diese Methode ändert die ursprüngliche Callback-API in eine Promise-Methode:

var util = require('../utils/util')

var getLocationPromisified = util.wxPromisify(wx.getLocation)

getLocationPromisified({
 type: 'wgs84'
}).then(function (res) {
 var latitude = res.latitude 
 var longitude = res.longitude 
 var speed = res.speed 
 var accuracy = res.accuracy 
}).catch(function () {
 console.error("get location failed")
})
Nach dem Login kopieren

Ist es leicht zu verstehen?

Das obige ist der detaillierte Inhalt vonDer Implementierungsprozess der asynchronen Prozessverarbeitung durch Promise im WeChat-Applet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie eröffne ich mehrere Toutiao-Konten? Wie läuft die Beantragung eines Toutiao-Kontos ab? Wie eröffne ich mehrere Toutiao-Konten? Wie läuft die Beantragung eines Toutiao-Kontos ab? Mar 22, 2024 am 11:00 AM

Mit der Popularität des mobilen Internets hat sich Toutiao zu einer der beliebtesten Nachrichteninformationsplattformen in meinem Land entwickelt. Viele Benutzer hoffen, mehrere Konten auf der Toutiao-Plattform zu haben, um unterschiedlichen Anforderungen gerecht zu werden. Wie eröffnet man also mehrere Toutiao-Konten? In diesem Artikel werden die Methode und der Antragsprozess zur Eröffnung mehrerer Toutiao-Konten ausführlich vorgestellt. 1. Wie eröffne ich mehrere Toutiao-Konten? Die Methode zur Eröffnung mehrerer Toutiao-Konten ist wie folgt: Auf der Toutiao-Plattform können Benutzer Konten über verschiedene Mobiltelefonnummern registrieren. Jede Mobiltelefonnummer kann nur ein Toutiao-Konto registrieren, was bedeutet, dass Benutzer mehrere Mobiltelefonnummern verwenden können, um mehrere Konten zu registrieren. 2. E-Mail-Registrierung: Verwenden Sie verschiedene E-Mail-Adressen, um ein Toutiao-Konto zu registrieren. Ähnlich wie bei der Registrierung einer Mobiltelefonnummer kann auch jede E-Mail-Adresse ein Toutiao-Konto registrieren. 3. Melden Sie sich mit einem Drittanbieterkonto an

Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Implementieren Sie Kartenumdreheffekte in WeChat-Miniprogrammen Nov 21, 2023 am 10:55 AM

Implementieren von Kartenumdreheffekten in WeChat-Miniprogrammen In WeChat-Miniprogrammen ist die Implementierung von Kartenumdreheffekten ein häufiger Animationseffekt, der die Benutzererfahrung und die Attraktivität von Schnittstelleninteraktionen verbessern kann. Im Folgenden wird detailliert beschrieben, wie der Kartenumdrehungseffekt im WeChat-Applet implementiert wird, und relevante Codebeispiele bereitgestellt. Zunächst müssen Sie in der Seitenlayoutdatei des Miniprogramms zwei Kartenelemente definieren, eines für die Anzeige des vorderen Inhalts und eines für die Anzeige des hinteren Inhalts. Der spezifische Beispielcode lautet wie folgt: <!--index.wxml-. ->&l

Halten Sie Ihr Wort: Die Vor- und Nachteile der Einhaltung Ihrer Versprechen Halten Sie Ihr Wort: Die Vor- und Nachteile der Einhaltung Ihrer Versprechen Feb 18, 2024 pm 08:06 PM

Im täglichen Leben stoßen wir oft auf Probleme zwischen Versprechen und Erfüllung. Ob in einer persönlichen Beziehung oder einer Geschäftstransaktion: Das Einhalten von Versprechen ist der Schlüssel zum Aufbau von Vertrauen. Allerdings sind die Vor- und Nachteile eines Engagements oft umstritten. In diesem Artikel werden die Vor- und Nachteile von Verpflichtungen untersucht und einige Ratschläge gegeben, wie Sie Ihr Wort halten können. Die versprochenen Vorteile liegen auf der Hand. Erstens schafft Engagement Vertrauen. Wenn jemand sein Wort hält, lässt er andere glauben, dass er eine vertrauenswürdige Person ist. Vertrauen ist die Bindung zwischen Menschen, die Menschen mehr machen kann

Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Alipay hat das Miniprogramm „Chinese Character Picking-Rare Characters' gestartet, um die Bibliothek seltener Charaktere zu sammeln und zu ergänzen Oct 31, 2023 pm 09:25 PM

Laut Nachrichten dieser Website vom 31. Oktober und 27. Mai dieses Jahres kündigte die Ant Group den Start des „Chinese Character Picking Project“ an und leitete kürzlich neue Fortschritte ein: Alipay startete das Miniprogramm „Chinese Character Picking – Uncommon Characters“. um Sammlungen der Gesellschaft zu sammeln. Seltene Charaktere ergänzen die Bibliothek seltener Charaktere und bieten unterschiedliche Eingabeerlebnisse für seltene Charaktere, um die Eingabemethode für seltene Charaktere in Alipay zu verbessern. Derzeit können Benutzer das Applet „Ungewöhnliche Zeichen“ aufrufen, indem sie nach Schlüsselwörtern wie „Aufnehmen chinesischer Zeichen“ und „Seltene Zeichen“ suchen. Im Miniprogramm können Benutzer Bilder von seltenen Zeichen einreichen, die vom System nicht erkannt und eingegeben wurden. Nach der Bestätigung nehmen Alipay-Ingenieure zusätzliche Einträge in die Schriftartenbibliothek vor. Auf dieser Website wurde festgestellt, dass Benutzer im Miniprogramm auch die neueste Eingabemethode zur Wortteilung nutzen können. Diese Eingabemethode ist für seltene Wörter mit unklarer Aussprache konzipiert. Demontage durch den Benutzer

Sind Douyin-Schlafanker profitabel? Was sind die spezifischen Verfahren für das Schlaf-Livestreaming? Sind Douyin-Schlafanker profitabel? Was sind die spezifischen Verfahren für das Schlaf-Livestreaming? Mar 21, 2024 pm 04:41 PM

In der heutigen schnelllebigen Gesellschaft plagen immer mehr Menschen Probleme mit der Schlafqualität. Um die Schlafqualität der Nutzer zu verbessern, erschien auf der Douyin-Plattform eine Gruppe spezieller Schlafanker. Sie interagieren mit den Nutzern über Live-Übertragungen, geben Tipps zum Einschlafen und sorgen mit entspannender Musik und Geräuschen dafür, dass die Zuschauer ruhig einschlafen können. Sind diese Schlafanker also profitabel? Dieser Artikel konzentriert sich auf dieses Problem. 1. Lohnt es sich, ein Douyin-Schlafanker zu sein? Mit Douyin-Schlafankern lassen sich tatsächlich gewisse Gewinne erzielen. Erstens können sie über die Trinkgeldfunktion im Live-Übertragungsraum Geschenke und Transfers erhalten. Diese Vorteile hängen von der Anzahl ihrer Fans und der Zufriedenheit des Publikums ab. Zweitens gewährt die Douyin-Plattform dem Moderator einen bestimmten Anteil basierend auf der Anzahl der Aufrufe, Likes, Shares und anderen Daten der Live-Übertragung. Einige Schlafanker werden es auch tun

Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Wie uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreicht Oct 20, 2023 pm 02:12 PM

Wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, erfordert spezifische Codebeispiele. Mit der Entwicklung des mobilen Internets und der Popularität von Smartphones sind Miniprogramme und H5 zu unverzichtbaren Anwendungsformen geworden. Als plattformübergreifendes Entwicklungsframework kann Uniapp die Konvertierung zwischen kleinen Programmen und H5 basierend auf einer Reihe von Codes schnell realisieren und so die Entwicklungseffizienz erheblich verbessern. In diesem Artikel wird vorgestellt, wie Uniapp eine schnelle Konvertierung zwischen Miniprogrammen und H5 erreichen kann, und es werden konkrete Codebeispiele gegeben. 1. Einführung in uniapp unia

So bedienen Sie die Miniprogramm-Registrierung So bedienen Sie die Miniprogramm-Registrierung Sep 13, 2023 pm 04:36 PM

Schritte zur Miniprogramm-Registrierung: 1. Erstellen Sie Kopien von Personalausweisen, Unternehmenslizenzen, juristischen Personenausweisen und anderen Archivierungsmaterialien. 2. Melden Sie sich beim Miniprogramm-Verwaltungshintergrund an. Wählen Sie „Grundeinstellungen“; 5. Geben Sie die Anmeldeinformationen ein; 6. Laden Sie die Anmeldematerialien hoch; 7. Senden Sie den Anmeldeantrag; 8. Warten Sie auf die Überprüfungsergebnisse. Wenn die Einreichung nicht bestanden wird, nehmen Sie basierend auf den Gründen Änderungen vor und den Einreichungsantrag erneut einreichen. 9. Die Folgemaßnahmen für die Einreichung sind Can.

Erfahren Sie mehr über Promise.resolve() Erfahren Sie mehr über Promise.resolve() Feb 18, 2024 pm 07:13 PM

Eine detaillierte Erklärung von Promise.resolve() erfordert spezifische Codebeispiele. Promise ist ein Mechanismus in JavaScript zur Verarbeitung asynchroner Vorgänge. In der tatsächlichen Entwicklung ist es häufig erforderlich, einige asynchrone Aufgaben zu verarbeiten, die nacheinander ausgeführt werden müssen, und die Methode Promise.resolve () wird verwendet, um ein erfülltes Promise-Objekt zurückzugeben. Promise.resolve() ist eine statische Methode der Promise-Klasse, die a akzeptiert

See all articles