了解node.js中的http.get请求

我试图了解如何在这里调用http.get。因此,这是我正在尝试的示例代码:

var http = require('http');

var urls = ['http://www.google.com', 
            'http://www.yahoo.com', 
            'http://www.cnn.com']

for (i = 0; i < 3; i++ ){
  url = urls[i]
  console.log(url)
  console.log('------')
  http.get(url, function(resp){
    console.log(url)
  });
};

上面的代码给了我这个输出:

http://www.google.com
------
http://www.yahoo.com
------
http://www.cnn.com
------
http://www.cnn.com
http://www.cnn.com
http://www.cnn.com

我得到了前三个(在'------'之前的那个)。我不明白的是,为什么最后三行都给我cnn.com?我以为http.get请求在每次迭代时都会启动?

这是否意味着当“ for”到达循环末尾时,http.get中的console.log(url)引用了http.get外的url = urls [2]?我该如何打印传递给http.get的网址(又称为参数)?

布莱恩·麦卡顿(Brian McCutchon)

这与节点无关。这是一个JavaScript关闭问题。url在循环的每次迭代中都会更新该变量,以便在执行任何回调函数(创建三个回调函数)时,将url变量设置为"http://www.cnn.com"

尝试一下,这是一种获取所需输出的简单方法:

var http = require('http');

var urls = ['http://www.google.com', 
            'http://www.yahoo.com', 
            'http://www.cnn.com']

for (i = 0; i < 3; i++ ){
  (function() {
    var url = urls[i]
    console.log(url)
    console.log('------')
    http.get(url, function(resp){
      console.log(url)
    });
  })();
};

基本上,它只是添加一个闭包,这样您就不必在每次迭代时都修改相同的变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node js http 请求:选项中的变量

来自分类Dev

Node.js GET请求

来自分类Dev

在Node.js中对一系列http.get请求的调用已完成

来自分类Dev

对Mailchimp的Node.js HTTP Get请求返回错误

来自分类Dev

带有参数 Node.js 的 HTTP GET 请求

来自分类Dev

无法验证 HTTP GET 请求 Node.js + Expressjs

来自分类Dev

Node.js自动GET请求

来自分类Dev

使用 body 执行 Get 请求 - Node js

来自分类Dev

在Node.js中的单个HTTP请求中调用多个HTTP请求

来自分类Dev

向Node.js中的JSON API发出GET请求?

来自分类Dev

使用Q Promises在node.js中链接GET请求

来自分类Dev

获取javascript(和Node.js)中GET请求的结果

来自分类Dev

如何从Node.js中的$ http请求返回ArrayBuffer?

来自分类常见问题

如何从Node.js http获取请求中获取数据

来自分类Dev

在Node.js中访问HTTP请求的时间戳

来自分类Dev

Node.js中的HTTP请求无法正常工作?

来自分类Dev

node.js中的顺序HTTP发布请求

来自分类Dev

如何从node.js中的HTTP请求获取同步结果

来自分类Dev

使用 $http 在 node.js 中的 PUT 请求

来自分类Dev

我如何获取我在node.js http请求中实际发送的http请求标头

来自分类Dev

从Node.JS中的实现中获取HTTP GET

来自分类Dev

不了解Node.js中的Cookie

来自分类Dev

不了解Node.js中的Cookie

来自分类Dev

Node.js http GET请求比浏览器,REST客户端等花费的时间更长

来自分类Dev

带有Lambda HTTP GET请求的AWS API Gateway(Node.js)502错误的网关

来自分类Dev

IIS无法从node.js应用读取数据(HTTP GET请求)

来自分类Dev

如何从 angular 向 node.js 发出 http.get() 请求?

来自分类Dev

node.js http.get中的缓存控制

来自分类Dev

node.js http.get中的Cache-Control

Related 相关文章

热门标签

归档