this might seem a silly question but I am a newbie in this topic. I am working on promises on node js. And I want to pass parameter to a promise function. However I could not figure it out.
JavaScript
x
4
1
someModule.someFunction.then(username, password,function(uid) {
2
/*stuff */
3
}
4
and the function is something like
JavaScript
1
9
1
var someFunction = new Promise(username, password, function(resolve, reject) {
2
/*stuff using username, password*/
3
if ( /* everything turned out fine */ ) {
4
resolve("Stuff worked!");
5
} else {
6
reject(Error("It broke"));
7
}
8
});
9
Advertisement
Answer
Wrap your Promise inside a function or it will start to do its job right away. Plus, you can pass parameters to the function:
JavaScript
1
13
13
1
var some_function = function (username, password) {
2
return new Promise(function (resolve, reject) {
3
4
/* stuff using username, password */
5
6
if (/* everything turned out fine */) {
7
resolve("Stuff worked!");
8
} else {
9
reject(Error("It broke"));
10
}
11
});
12
};
13
Then, use it:
JavaScript
1
4
1
some_module.some_function(username, password).then(function (uid) {
2
// stuff
3
});
4
ES6:
JavaScript
1
13
13
1
const some_function = (username, password) => {
2
return new Promise((resolve, reject) => {
3
4
/* stuff using username, password */
5
6
if (/* everything turned out fine */) {
7
resolve("Stuff worked!");
8
} else {
9
reject(Error("It broke"));
10
}
11
});
12
};
13
Use:
JavaScript
1
4
1
some_module.some_function(username, password).then((uid) => {
2
// stuff
3
});
4