javascript – node.js传递回调?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – node.js传递回调?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1789字,纯文字阅读大概需要3分钟。
内容图文
![javascript – node.js传递回调?](/upload/InfoBanner/zyjiaocheng/726/66dbd8b290a646c294c0c58a88a3c904.jpg)
正在工作 :
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(),除非这是让它与回调一起工作的唯一方法.
这应该 :
>创建请求
>收到回复后,检查错误.
>如果未找到错误,请将数据发送回getAccessToken()的调用方.
这更像是一个学习Node.js的异步问题,我尝试了一些事情,并想到我会问一些专家.
解决方法:
解决此问题的最常见方法是返回一个关闭回调的函数.
所以像这样:
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(回调)时,该函数返回一个将用于请求回调的函数.
内容总结
以上是互联网集市为您收集整理的javascript – node.js传递回调?全部内容,希望文章能够帮你解决javascript – node.js传递回调?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。