


Explication détaillée de l'exécution séquentielle de promsie.all et de promise
Cet article présente principalement les informations pertinentes sur l'applet WeChat promsie.all et l'exécution séquentielle des promesses. J'espère que cet article pourra aider tout le monde. Les amis dans le besoin pourront s'y référer.
L'applet WeChat promsie.all et promise sont exécutés séquentiellement
Avant-propos
Récemment. Lors du développement de petits programmes, l'une des exigences que j'ai rencontrées est la soumission du formulaire. Ce que WeChat fait ici est de télécharger d'abord l'image, et l'arrière-plan vous renverra le nom et l'adresse de l'image, puis vous insérez l'image. informations sur l'image. Accédez à la position correspondante du formulaire, puis soumettez le formulaire. Cela implique comment télécharger la demande d'image avant de télécharger le formulaire. De plus, s'il y a plusieurs images dans l'applet WeChat, vous ne pouvez les télécharger qu'une par une. . Pour faire simple, après avoir téléchargé l'image (plusieurs requêtes), obtenir la valeur de retour, puis télécharger le formulaire, que dois-je faire ?
2. Promise.all et Promise.race
Introduisons d'abord les différences entre les méthodes Promise.all et Promise.race Promise.all (itérable) La méthode renvoie une promesse lorsque toutes les promesses des paramètres itérables ont été complétées ou lorsque la première promesse transmise (faisant référence au rejet) échoue. iterable est un objet itérable, mais est généralement un tableau. La valeur de retour est également un objet Promise.
Quelques points doivent être clarifiés. Promise.all exécute plusieurs objets Promise simultanément, et les paramètres de l'objet Promise renvoyé sont un tableau, et chaque élément du tableau est également un objet itérable. . La commande est retournée.
La méthode Promise.race(iterable) renvoie une nouvelle promesse. Tant qu'il y a un objet de promesse "resolve" ou "reject" dans le paramètre iterable, la nouvelle promesse sera complétée immédiatement ( solve)" ou "rejeter", et obtenez la valeur de retour ou la cause de l'erreur de l'objet de promesse précédent. Ainsi, tant que l'un des itérables se termine ou échoue, un objet de promesse est renvoyé immédiatement. Selon le mot course, on peut également conclure que le premier arrivé renvoie immédiatement un objet promis.
Selon la définition ci-dessus, nous utilisons la méthode Promise.all pour compléter nos besoins.
//存储promise对象的数组 let promiseArr = []; //图片地址数组 let imageList = []; //将图片地址的上传的promise对象加入到promiseArr for (let i = 0; i < imageList.length; i++) { let promise = new Promise((resolve, reject) => { //微信图片上传 wx.uploadFile({ url: 'https://xxx.xxx.xxx/api/uploadImage', filePath: imageList[i], name: 'file', success: function(res) { //可以对res进行处理,然后resolve返回 resolve(res); }, fail: function (error) { reject(error); }, complete: function (res) { }, }) }); promiseArr.push(promise) } //Promise.all处理promiseArr数组中的每一个promise对象 Promise.all(promiseArr).then((result) => { //对返回的result数组进行处理 })
3. Problèmes avec le mini-programme WeChat
Je travaille sur la fonction de téléchargement d'images de WeChat mini programme. Ici, vous pouvez uniquement télécharger l'image en premier, puis renvoyer le nom et l'adresse de l'image en réponse.
Ici, nous utilisons la méthode promise.all, mais il y a un problème. Promise.all est exécuté simultanément, mais l'applet WeChat ne peut faire que 10 requêtes simultanées à la fois.
Pour le téléchargement d'images, vous devrez peut-être télécharger plus de 10 images à la fois, ce qui signifie plus de 10 demandes simultanées à la fois. Dans ce cas, WeChat signalera une erreur
<. 🎜>"WAService.js:4 uploadFile :fail createUploadTask:fail dépasse le nombre maximum de connexions de téléchargement 10".
4. Traitement d'exécution de la promesse séquentielle
//顺序处理函数 function sequenceTasks(tasks) { //记录返回值 function recordValue(results, value) { results.push(value); return results; } let pushValue = recordValue.bind(null, []); let promise = Promise.resolve(); // 处理tasks数组中的每个函数对象 for (let i = 0; i < tasks.length; i++) { let task = tasks[i]; promise = promise.then(task).then(pushValue); } return promise; } //函数数组,每个函数的返回值是一个promise对象 let promiseFuncArr = []; //图片地址数组 let imageList = []; //将图片地址的上传的函数加入到promiseFuncArr数组中 for (let i = 0; i < imageList.length; i++) { let promiseTemp = function(){ return new Promise((resolve, reject) => { //微信图片上传 wx.uploadFile({ url: 'https://xxx.xxx.xxx/api/uploadImage', filePath: imageList[i], name: 'file', success: function(res) { //可以对res进行处理,然后resolve返回 resolve(res); }, fail: function (error) { reject(error); }, complete: function (res) { }, }) }); }; promiseFuncArr.push(promiseTemp) } sequenceTasks(promiseFuncArr).then((result) => { //对返回的result数组进行处理 });
<. 🎜>
Premier recordValue La fonction transmet deux valeurs, l'une est le tableau de résultats, l'autre est la valeur, la valeur est la valeur transmise, results.push(value); tableau de résultats.
let pushValue = recordValue.bind(null, []);
promise = promise.then(task).then(pushValue);
2. La boucle for dans séquenceTasks peut également être écrite dans la méthode de réduction suivante :
function sequenceTasks(tasks) { //记录返回值 function recordValue(results, value) { results.push(value); return results; } let pushValue = recordValue.bind(null, []); return tasks.reduce(function (promise, task) { return promise.then(task).then(pushValue); }, Promise.resolve()); }
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)

Ce n’est un secret pour personne, Internet Explorer est tombé en disgrâce depuis longtemps, mais avec l’arrivée de Windows 11, la réalité s’installe. Plutôt que de remplacer parfois IE à l'avenir, Edge est désormais le navigateur par défaut du dernier système d'exploitation de Microsoft. Pour l'instant, vous pouvez toujours activer Internet Explorer dans Windows 11. Cependant, IE11 (la dernière version) a déjà une date officielle de mise à la retraite, qui est le 15 juin 2022, et le temps presse. Dans cet esprit, vous avez peut-être remarqué qu'Internet Explorer ouvre parfois Edge, et cela ne vous plaira peut-être pas. Alors pourquoi cela se produit-il ? exister

De plus en plus d'utilisateurs commencent à mettre à niveau le système Win11. Étant donné que chaque utilisateur a des habitudes d'utilisation différentes, de nombreux utilisateurs utilisent toujours le navigateur ie11. Alors, que dois-je faire si le système Win11 ne peut pas utiliser le navigateur ie ? Windows11 prend-il toujours en charge ie11 ? Jetons un coup d'œil à la solution. Solution au problème selon lequel Win11 ne peut pas utiliser le navigateur ie11 1. Tout d'abord, cliquez avec le bouton droit sur le menu Démarrer et sélectionnez « Invite de commandes (administrateur) » pour l'ouvrir. 2. Après ouverture, entrez directement « Netshwinsockreset » et appuyez sur Entrée pour confirmer. 3. Après confirmation, entrez « netshadvfirewallreset&rdqu ».

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

Vue est un framework frontal populaire et vous rencontrez souvent diverses erreurs et problèmes lors du développement d'applications. Parmi eux, Uncaught(inpromise)TypeError est un type d’erreur courant. Dans cet article, nous discuterons de ses causes et de ses solutions. Qu'est-ce qu'une erreur de type non interceptée (inpromise) ? L'erreur Uncaught(inpromise)TypeError apparaît généralement dans

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

Récemment, de nombreux utilisateurs de Win10 ont constaté que leur navigateur IE passe toujours automatiquement au navigateur Edge lorsqu'ils utilisent des navigateurs informatiques. Alors, comment désactiver le saut automatique vers Edge lors de l'ouverture d'IE dans Win10 ? Laissez ce site présenter soigneusement aux utilisateurs comment passer automatiquement au bord et se fermer lors de l'ouverture d'IE dans Win10. 1. Nous nous connectons au navigateur Edge, cliquons sur... dans le coin supérieur droit et recherchons l'option de paramètres déroulante. 2. Après avoir entré les paramètres, cliquez sur Navigateur par défaut dans la colonne de gauche. 3. Enfin, dans la compatibilité, on coche la case pour ne pas autoriser le rechargement du site web en mode IE et on redémarre le navigateur IE.

Le 15 juin 2022 est le jour où Microsoft met fin au support d'Internet Explorer 11 (IE11) et clôture son chapitre sur les anciens navigateurs. L’entreprise rappelle depuis un certain temps aux utilisateurs cette date de fin de vie et les appelle à envisager une migration vers Microsoft Edge. Microsoft regroupe IE11 avec Windows 8.1 comme navigateur Web moderne par défaut pour Windows. Bien qu’il n’ait jamais atteint les sommets (actuels) de Chrome, il était le deuxième navigateur de bureau le plus utilisé en 2014, derrière IE8. Bien sûr, avec 20

Solutions aux raccourcis IE qui ne peuvent pas être supprimés : 1. Problèmes d'autorisation ; 2. Dommages aux raccourcis ; 3. Conflits logiciels ; 4. Problèmes de registre 6. Problèmes de système ; 7. Réinstaller IE ; outils ; 9. Vérifiez le chemin cible du raccourci ; 10. Tenez compte d’autres facteurs ; 11. Consultez des professionnels. Introduction détaillée : 1. Problème d'autorisation, cliquez avec le bouton droit sur le raccourci, sélectionnez "Propriétés", dans l'onglet "Sécurité", assurez-vous que vous disposez des autorisations suffisantes pour supprimer le raccourci. Sinon, vous pouvez essayer de l'exécuter en tant qu'administrateur, etc. .
