这似乎是一个愚蠢的问题,但我是这个主题的新手.我正在研究节点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 */
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。