正在工作 :
function getAccessToken ( callback ) {
request({
uri: oauth2_url,
method: 'POST',
form: {
grant_type: 'password',
client_id: client_id,
client_secret: client_secret,
username: username,
password: password
}
},
function tokenRequestResponse (error, response) {
if ( !error && response.statusCode == 200) {
// Send our data back to caller.
callback ( JSON.parse(response.body).access_token );
}
else {
console.log('Error: ' + response.statusCode);
}
});
}
我要完成的工作:
function tokenRequestResponse (error, response) {
if ( !error && response.statusCode == 200) {
callback ( JSON.parse(response.body).access_token );
}
else {
console.log('Error: ' + response.statusCode);
}
}
function getAccessToken ( callback ) {
request({
uri: oauth2_url,
method: 'POST',
form: {
grant_type: 'password',
client_id: client_id,
client_secret: client_secret,
username: username,
password: password
}
}, tokenRequestResponse });
}
我想避免嵌套tokenRequestResponse(),除非那是使其与回调一起工作的唯一方法。
它应该 :
这更多是一个学习Node.js异步问题,我尝试了一些事情,并想请教一些专家。
解决此问题的最常见方法是返回在上关闭的函数callback
。
所以像这样:
function tokenRequestResponse(callback) {
return function (error, response) {
if ( !error && response.statusCode == 200) {
callback ( JSON.parse(response.body).access_token );
}
else {
console.log('Error: ' + response.statusCode);
}
}
}
然后您可以像这样使用它:
function getAccessToken ( callback ) {
request({
uri: oauth2_url,
method: 'POST',
form: {
grant_type: 'password',
client_id: client_id,
client_secret: client_secret,
username: username,
password: password
}
}, tokenRequestResponse(callback));
}
当您tokenRequestResponse(callback)
对该函数进行调用时,将返回一个将用于request
回调的函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句