Javascript 在NodeJS中,如何将变量传递给http.request回调?
我调用http.request().end(),需要向回调函数传递一个变量 我该怎么做 在我的情况下,用户访问服务器,服务器向我们的API发送HTTP请求,然后服务器需要使用HTTP请求返回的信息响应该用户。如果不使用全局变量,我想不出一种方法来做到这一点,这将是一个问题,因为如果两个人同时这样做,两条消息将发送给同一个用户 不知道这会有什么帮助,但我想做的是Javascript 在NodeJS中,如何将变量传递给http.request回调?,javascript,node.js,express,httprequest,Javascript,Node.js,Express,Httprequest,我调用http.request().end(),需要向回调函数传递一个变量 我该怎么做 在我的情况下,用户访问服务器,服务器向我们的API发送HTTP请求,然后服务器需要使用HTTP请求返回的信息响应该用户。如果不使用全局变量,我想不出一种方法来做到这一点,这将是一个问题,因为如果两个人同时这样做,两条消息将发送给同一个用户 不知道这会有什么帮助,但我想做的是 callback = function(response){ //... respondToUser(userId);
callback = function(response){
//...
respondToUser(userId);
}
function doStuff(userId){
http.request({host:'www.google.com'}, callback).end();
}
它被称为“闭包”,在这里,您将保持您正在编写的函数的上下文,如下所示
function doStuff(userId){
var callback = function(response){
//...
respondToUser(userId);
}
http.request({host:'www.google.com'}, callback).end();
}
“如果不使用全局变量,我想不出一种方法来实现这一点……”不需要全局变量,只需要您的
请求
回调结束。如果你展示你的代码,我们可以帮助你。如果你不使用匿名函数作为回调函数,你应该能够轻松地传递你想要的。我添加了一个粗略的例子,说明我是如何尝试使用它的。也许我从根本上误解了一些东西,如果是的话,我很抱歉,我是node.jsI的新手。我考虑过这一点,但我有几个不同的函数需要执行这种行为,多次复制粘贴一百行解析代码可能不是一个很好的解决方案。如果这是唯一的解决方案,我想我可能可以组合所有这些函数。您可能已经以一种方式组织了您的代码,使其能够在过程编程语言(如Java或C++)中工作——您用函数式语言(如JavaScript)组织代码的方式非常不同。是的,您可能是对的。我将所有函数重写为一个更复杂的函数,其中包含回调函数,因此感谢您的回答