cela peut sembler une question idiote, mais je suis un débutant dans ce sujet. Je travaille sur des promesses sur le nœud js. Et je veux passer un paramètre à une fonction de promesse. Cependant, je ne pouvais pas le comprendre.
someModule.someFunction.then(username, password,function(uid) {
/*stuff */
}
et la fonction est quelque chose comme
var someFunction = new Promise(username, password, function(resolve, reject) {
/*stuff using username, password*/
if ( /* everything turned out fine */ ) {
resolve("Stuff worked!");
} else {
reject(Error("It broke"));
}
});
javascript
node.js
promise
kundante
la source
la source
username
etpassword
dans une portée plus élevéeRéponses:
Enveloppez votre promesse dans une fonction ou elle commencera à faire son travail immédiatement. De plus, vous pouvez passer des paramètres à la fonction:
Ensuite, utilisez-le:
ES6:
Utilisation:
la source
someModule
?uid
? S'agit-il de la chaîne "Stuff working!"?Une autre façon (à essayer ):
la source
then
est un rappel pour gérer la valeur de retour de la fonction de rejet . Au lieu d'resolve('Success!');
essayer,reject('Error');
nous obtiendrons une erreur:Unhandled promise rejection
ici, nous voyons la sortie parce quevar extraData = 'ImExtraData';
c'est une variable globale et PAS à cause de sa transmission en utilisantthen
Encore plus court
la source
Vous pouvez utiliser .bind () pour passer le paramètre ( this ) à la fonction.
la source
.then()
quand je l'invoque dans un bouton ` SaveImagesToFirebase = () => {const uid = firebase.auth (). currentUser.uid; // Fournisseur const {images} = this.state; images.map (image => {let file = image.uri; console.log (fichier); const path = "Img " + Math.floor (Math.random () * 1500); console.log ("@ IMAGE" , chemin); const ref = firebase .storage () .ref (provider/${uid}/ProviderGalary/${path}
); ref.put (fichier);}); }; `@gogog