


Le processus de mise en œuvre du traitement des processus asynchrones par Promise dans l'applet WeChat
Cet article présente principalement des informations pertinentes sur les exemples détaillés d'utilisation de Promise pour le traitement de processus asynchrones dans les mini-programmes WeChat. Voici une explication détaillée de la façon d'utiliser Promise pour traiter des processus asynchrones et fournit des étapes de mise en œuvre spécifiques. Suivant
Une explication détaillée d'un exemple d'utilisation de Promise pour le traitement de processus asynchrone dans une applet WeChat
Nous savons que JavaScript est exécuté en un seul processus, et les opérations synchrones affecteront l'exécution du traitement de blocage. Par exemple, dans un programme de page de navigateur, si un morceau de code synchronisé prend beaucoup de temps à s'exécuter (comme une opération en boucle importante), la page restera bloquée.
Ainsi, en JavaScript, certaines fonctionnalités asynchrones sont fournies pour offrir des avantages en termes de performances et d'expérience au programme. Par exemple, le code peut être exécuté dans setTimeout(); demande de données asynchrone au serveur. Ces codes asynchrones ne bloqueront pas le processus principal de l'interface actuelle et l'interface peut toujours fonctionner de manière flexible. Le traitement correspondant sera effectué une fois l'exécution du code asynchrone terminée.
Un code asynchrone typique ressemble à ceci :
function asyncFunc(callback) { setTimeout(function () { //在这里写你的逻辑代码 //... //逻辑代码结束,执行一个回调函数 callback(); }, 5000); }
ou :
function getAccountInfo(callback, errorCallback) { wx.request({ url: '/accounts/12345', success: function (res) { //... callback(data); }, fail: function (res) { //... errorCallback(data); } }); }
Ensuite, nous l'appelons ainsi :
asyncFunc(function () { console.log("asyncFunc() run complete"); }); getAccountInfo(function (data) { console.log("get account info successfully:", data); }, function () { console.error("get account info failed"); });
C'est une façon d'utiliser les fonctions de rappel pour contrôler le flux d'exécution du code. Cela semble bien et facile à comprendre.
Cependant, si nous avons trop d'opérations asynchrones dans un morceau de code et que nous devons nous assurer que ces opérations asynchrones sont exécutées dans l'ordre, alors notre code aura l'air très mauvais, comme ceci :
asyncFunc1(function(){ //... asyncFunc2(function(){ //... asyncFunc3(function(){ //... asyncFunc4(function(){ //... asyncFunc5(function(){ //... }); }); }); }); });
La lisibilité et la maintenabilité d'un tel code peuvent être imaginées. De plus, le vrai problème avec la fonction de rappel est :
Elle nous enlève la possibilité d'utiliser les mots-clés return et throw.
Alors, quels sont les moyens d'améliorer ce problème ? La réponse est oui, l’émergence du concept de Promesse résout bien tout cela. Concernant ce qu'est Promise, il y a beaucoup d'introductions après recherche, je ne vais pas copier-coller ici, je parlerai principalement de la façon dont nous l'utilisons pour résoudre nos problèmes.
Jetons un coup d'oeil, à quoi ressemblerait l'exemple ci-dessus si nous utilisions Promise ? Changeons d'abord ces fonctions en Promise :
function asyncFunc1(){ return new Promise(function (resolve, reject) { //... }) } // asyncFunc2,3,4,5也实现成跟asyncFunc1一样的方式...
Jetons ensuite un œil à leur fonctionnement appelé comme ceci :
asyncFunc1() .then(asyncFunc2) .then(asyncFunc3) .then(asyncFunc4) .then(asyncFunc5);
De cette façon, ces fonctions asynchrones seront exécutées une par une dans l'ordre.
ES6 prend en charge Promise de manière native, mais dans les environnements où Promise n'est pas pris en charge de manière native, nous disposons de nombreuses bibliothèques tierces pour le prendre en charge, telles que Q.js et Bluebird. En plus des API Promise standards, elles fournissent généralement des API non standards mais très utiles, rendant le contrôle des processus asynchrones plus élégant.
D'après la documentation API de l'applet WeChat, nous pouvons voir que de nombreuses fonctions de l'API JavaScript fournies par le framework sont en réalité asynchrones, comme wx.setStorage(), wx.getStorage(), wx.getLocation ( ), etc., ce sont également les méthodes de traitement de rappel fournies. En transmettant les fonctions de rappel de réussite, d'échec et complètes dans les paramètres, le succès ou l'échec de l'opération peut être traité séparément.
Par exemple :
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") } })
Pouvons-nous faire en sorte que l'API asynchrone de l'applet WeChat prenne en charge la promesse ? La réponse est oui, bien sûr, nous pouvons utiliser Promise pour encapsuler ces API une par une, mais cela reste assez gênant. Cependant, étant donné que le format des paramètres de l'API du mini-programme est relativement uniforme, il n'accepte qu'un seul paramètre d'objet et les rappels sont définis dans ce paramètre. Par conséquent, cela facilite notre traitement unifié et nous pouvons écrire un non-. outil intrusif. Méthode pour effectuer un tel travail :
Supposons que nous écrivions cette méthode outil dans un fichier nommé 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 }
Après cela, voyons comment l'utiliser. Cette méthode transforme l'API de rappel d'origine en une méthode Promise :
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") })
Est-ce facile à comprendre ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Avec la popularité de l'Internet mobile, Toutiao est devenue l'une des plateformes d'information les plus populaires de Chine. De nombreux utilisateurs espèrent disposer de plusieurs comptes sur la plateforme Toutiao pour répondre à différents besoins. Alors, comment ouvrir plusieurs comptes Toutiao ? Cet article présentera en détail la méthode et le processus de demande d'ouverture de plusieurs comptes Toutiao. 1. Comment ouvrir plusieurs comptes Toutiao ? La méthode d'ouverture de plusieurs comptes Toutiao est la suivante : Sur la plateforme Toutiao, les utilisateurs peuvent enregistrer des comptes via différents numéros de téléphone mobile. Chaque numéro de téléphone mobile ne peut enregistrer qu'un seul compte Toutiao, ce qui signifie que les utilisateurs peuvent utiliser plusieurs numéros de téléphone mobile pour enregistrer plusieurs comptes. 2. Inscription par e-mail : utilisez différentes adresses e-mail pour enregistrer un compte Toutiao. Semblable à l'enregistrement d'un numéro de téléphone mobile, chaque adresse e-mail peut également enregistrer un compte Toutiao. 3. Connectez-vous avec un compte tiers

Implémentation d'effets de retournement de cartes dans les mini-programmes WeChat Dans les mini-programmes WeChat, la mise en œuvre d'effets de retournement de cartes est un effet d'animation courant qui peut améliorer l'expérience utilisateur et l'attractivité des interactions d'interface. Ce qui suit présentera en détail comment implémenter l'effet de retournement de carte dans l'applet WeChat et fournira des exemples de code pertinents. Tout d'abord, vous devez définir deux éléments de carte dans le fichier de mise en page du mini-programme, un pour afficher le contenu avant et un pour afficher le contenu arrière. L'exemple de code spécifique est le suivant : <!--index.wxml-. ->&l

Dans la vie quotidienne, nous rencontrons souvent des problèmes entre promesses et réalisation. Que ce soit dans une relation personnelle ou dans une transaction commerciale, tenir ses promesses est essentiel pour instaurer la confiance. Cependant, les avantages et les inconvénients de l’engagement sont souvent controversés. Cet article explorera les avantages et les inconvénients des engagements et donnera quelques conseils sur la façon de tenir parole. Les avantages promis sont évidents. Premièrement, l’engagement renforce la confiance. Lorsqu’une personne tient parole, elle fait croire aux autres qu’elle est une personne digne de confiance. La confiance est le lien établi entre les personnes, qui peut les rendre plus

Selon les informations de ce site du 31 octobre, le 27 mai de cette année, Ant Group a annoncé le lancement du « Projet de sélection de caractères chinois » et a récemment inauguré de nouveaux progrès : Alipay a lancé le mini-programme « Sélection de caractères chinois-Caractères rares ». pour collecter des collections de la société Les personnages rares complètent la bibliothèque de personnages rares et offrent différentes expériences de saisie pour les personnages rares afin d'aider à améliorer la méthode de saisie des caractères rares dans Alipay. Actuellement, les utilisateurs peuvent accéder à l'applet « Caractères peu communs » en recherchant des mots-clés tels que « capture de caractères chinois » et « caractères rares ». Dans le mini-programme, les utilisateurs peuvent soumettre des images de caractères rares qui n'ont pas été reconnus et saisis par le système. Après confirmation, les ingénieurs d'Alipay effectueront des entrées supplémentaires dans la bibliothèque de polices. Ce site Web a remarqué que les utilisateurs peuvent également découvrir la dernière méthode de saisie par fractionnement de mots dans le mini-programme. Cette méthode de saisie est conçue pour les mots rares dont la prononciation n'est pas claire. Démantèlement utilisateur

Dans la société actuelle en évolution rapide, les problèmes de qualité du sommeil touchent de plus en plus de personnes. Afin d'améliorer la qualité du sommeil des utilisateurs, un groupe d'ancres de sommeil spéciales est apparu sur la plateforme Douyin. Ils interagissent avec les utilisateurs via des diffusions en direct, partagent des conseils sur le sommeil et proposent de la musique et des sons relaxants pour aider les téléspectateurs à s'endormir paisiblement. Alors, ces ancres de sommeil sont-elles rentables ? Cet article se concentrera sur cette question. 1. Les ancres de sommeil Douyin sont-elles rentables ? Les ancres de sommeil Douyin peuvent en effet gagner certains bénéfices. Premièrement, ils peuvent recevoir des cadeaux et des transferts grâce à la fonction de pourboire dans la salle de diffusion en direct, et ces avantages dépendent de leur nombre de fans et de la satisfaction du public. Deuxièmement, la plateforme Douyin attribuera au présentateur une certaine part en fonction du nombre de vues, de likes, de partages et d'autres données de la diffusion en direct. Certaines ancres de sommeil seront également

La manière dont Uniapp peut réaliser une conversion rapide entre les mini-programmes et le H5 nécessite des exemples de code spécifiques. Ces dernières années, avec le développement de l'Internet mobile et la popularité des smartphones, les mini-programmes et le H5 sont devenus des formulaires de candidature indispensables. En tant que cadre de développement multiplateforme, uniapp peut réaliser rapidement la conversion entre les petits programmes et H5 sur la base d'un ensemble de codes, améliorant considérablement l'efficacité du développement. Cet article présentera comment Uniapp peut réaliser une conversion rapide entre les mini-programmes et H5, et donnera des exemples de code spécifiques. 1. Introduction à uniapp unia

Étapes de l'opération d'enregistrement du mini-programme : 1. Préparez des copies des cartes d'identité personnelles, des licences commerciales, des cartes d'identité des personnes morales et d'autres documents de classement ; 2. Connectez-vous à l'arrière-plan de gestion du mini-programme ; 3. Accédez à la page des paramètres du mini-programme ; Sélectionnez " "Paramètres de base" ; 5. Remplissez les informations de dépôt ; 6. Téléchargez les documents de dépôt ; 7. Soumettez la demande de dépôt ; 8. Attendez les résultats de l'examen. Si le dépôt n'est pas accepté, apportez des modifications en fonction des raisons. et soumettre à nouveau la demande de dépôt; 9. Les opérations de suivi du dépôt sont celles du Can.

Une explication détaillée de Promise.resolve() nécessite des exemples de code spécifiques. Promise est un mécanisme en JavaScript pour gérer les opérations asynchrones. Dans le développement réel, il est souvent nécessaire de traiter certaines tâches asynchrones qui doivent être exécutées dans l'ordre, et la méthode Promise.resolve() est utilisée pour renvoyer un objet Promise qui a été rempli. Promise.resolve() est une méthode statique de la classe Promise, qui accepte un
