Node.js';对象不是函数';对于第二次运行时的有效负载()
此代码用于在用户输入用户名/密码时返回令牌。如果他们输入了错误的信息并得到了401,他们会得到提示,再次尝试使用Node.js';对象不是函数';对于第二次运行时的有效负载(),node.js,bluebird,Node.js,Bluebird,此代码用于在用户输入用户名/密码时返回令牌。如果他们输入了错误的信息并得到了401,他们会得到提示,再次尝试使用.catch(函数(err){callApiToken();})。但是,在第二次传递时,我将获得未处理的拒绝类型错误:对象不是有效负载(用户,传递)函数的函数。为什么会这样 function payload(user, pass) { return payload = { "thePassword": { "usernam
.catch(函数(err){callApiToken();})
。但是,在第二次传递时,我将获得未处理的拒绝类型错误:对象不是有效负载(用户,传递)
函数的函数。为什么会这样
function payload(user, pass) {
return payload = {
"thePassword": {
"username": user,
"password": pass
}
}
}
function postAsync(url, payload) {
return new Promise(function(resolve, reject) {
rest.postJson(url, payload)
.on('fail', function(data, response) {
httpFail(data, response, reject);
reject(response.statusCode);
})
.on('error', function(err, response) {
conError(err, response);
reject(err);
})
.on('success', function(data, response) {
writeToFile(data, response);
resolve();
});
});
}
function getPassword(user) {
return readAsync({prompt: "Password: ", silent: true, replace: "*" })
.then(function(pass) {
//PAYLOAD() IS WHERE THE ERROR IS AT SECOND TIME
//BEING CALLED
return postAsync(URL, payload(user[0], pass[0]));
});
}
如何称呼它:
callApiToken()
.then(function() { refreshToken(); })
.catch(function(err) {
callApiToken();
});
您的问题是有效负载功能本身,特别是这一部分:
return payload = {
"thePassword": {
"username": user,
"password": pass
}
}
这样做的目的是将有效负载设置为“password”对象,这样在第一次调用之后,它不再是一个函数,而是一个对象
改为这样做:
function payload(user, pass) {
return {
"thePassword": {
"username": user,
"password": pass
}
}
}
callApiToken做什么?callApiToken是调用getUsername()->getPassword()->postAsync()的主函数。所以callApiToken=require('script.).getUsername代码>