返回信息流有一个问题,就是在我使用nodejs的时候, 一个函数里面有一些变量, 我想在回调函数里面使用, 该怎么办呢?
function a (a, b, c) {
var d = a + b +c;
request.get(url, function(error, response, body) {
// TODO: 我想在这里面使用a, b, c, d该如何去做呢?
});
}
nodejs其实是半路出家, 之前都是python和iOS开发, 不太熟悉JS的这种回调模式, 请大牛指点一二~
这是一条镜像帖。来源:北邮人论坛 / java / #28634同步于 2014/2/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
NodeJS的异步同步化问题
rayzl0523
2014/2/27镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
我理解lz的意思应该是想在request.get()的回调中访问函数a中的变量,且执行顺序是先a后request.get,那么应该写成下面的样子:
function a(a, b, c) {
var d = a + b + c;
// 返回所定义的回调函数
return function (error, response, body) {
// 使用变量a, b, c, d的语句
};
}
var callback = a(1, 2, 3);
request.get(url, callback);
用一个闭包把a中的局部变量“包起来”,然后用这个闭包作为回调,就可以访问被闭包“包住”的变量了