javascript - Hvordan sende en parameter til et Promise?
Dette kan virke som et dumt spørsmål, men jeg er nybegynner på dette emnet. Jeg jobber med Promises i Nodejs og jeg vil sende en parameter til en Promise-funksjon. Imidlertid klarte jeg ikke å finne ut hvordan jeg skulle gjøre det.
For eksempel:
someModule.someFunction.then(username, password,function(uid) {
/*stuff */
}
Og funksjonen er noe slik som:
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"));
}
});
Svar #1
Pakk din Promise inn i en funksjon, ellers vil den begynne å gjøre jobben sin med en gang. I tillegg kan du sende parametere til funksjonen:
var some_function = function (username, password) {
return new Promise(function (resolve, reject) {
/* stuff using username, password */
if (/* everything turned out fine */) {
resolve("Stuff worked!");
} else {
reject(Error("It broke"));
}
});
};
Deretter, bruk det:
some_module.some_function(username, password).then(function (uid) {
// stuff
});
ES6:
const some_function = (username, password) => {
return new Promise((resolve, reject) => {
/* stuff using username, password */
if (/* everything turned out fine */) {
resolve("Stuff worked!");
} else {
reject(Error("It broke"));
}
});
};
Bruk :
some_module.some_function(username, password).then((uid) => {
// stuff
});
Svar #2
En annen måte(Må Prøves):
var promise1 = new Promise(function(resolve, reject) {
resolve('Success!');
});
var extraData = 'ImExtraData';
promise1.then(function(value) {
console.log(value, extraData);
// expected output: "Success!" "ImExtraData"
}, extraData);