如何将参数传递给promise函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将参数传递给promise函数相关的知识,希望对你有一定的参考价值。
这似乎是一个愚蠢的问题,但我是这个主题的新手。我正在研究节点js上的promises。我想将参数传递给promise函数。但是我无法理解。
someModule.someFunction.then(username, password,function(uid) {
/*stuff */
}
和功能是类似的
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"));
}
});
答案
将你的Promise包装在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数:
var someFunction = 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"));
}
});
}
然后,使用它:
someModule.someFunction(username, password).then(function(uid) {
/* stuff */
})
ES6:
const someFunction = (username, password) => {
return new Promise((resolve, reject) => {
/*stuff using username, password*/
if ( /* everything turned out fine */ ) {
resolve("Stuff worked!");
} else {
reject(Error("It broke"));
}
});
};
使用:
someModule.someFunction(username, password).then(uid => {
/* stuff */
});
另一答案
其他方式:
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);
以上是关于如何将参数传递给promise函数的主要内容,如果未能解决你的问题,请参考以下文章
如何将 URL 中的数组作为参数传递给 Promise.all