首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js,在for循环上执行函数时无法从回调中获得响应。

node.js,在for循环上执行函数时无法从回调中获得响应。
EN

Stack Overflow用户
提问于 2014-03-10 12:23:18
回答 1查看 82关注 0票数 0

我想做一个模拟,比如在node.js中登录到web应用程序多个用户。

我有一个函数login(),我在for循环中执行它,以模拟许多用户的登录。

但是,当maxThreads >5时,有时不会收到回调在函数login()中请求的响应,我的代码是:

代码语言:javascript
复制
var request = require("request");
var cheerio = require("cheerio");


function login(i){
request({
  uri: "http://example.com/sign_in",
  method: "POST",
  timeout: 1000,
  followAllRedirects: true,
  form: {
    email: "mail@example.com",
    password: "password"
  }      
}, function (error, response, body) {
    var $ = cheerio.load(body);
    var title = $("title");
    console.log(title.html()+ "-" + i );             
});
}

var maxThreads = 10
for(i=0; i<maxThreads; i++){
  login(i)
}

示例输出:

代码语言:javascript
复制
null-5
null-6
null-7
null-8
null-9
Exapmle title-0
Exapmle title-1
Exapmle title-3
Exapmle title-2
Exapmle title-4

我的问题: whan我有更多的线程-我有更多的空响应

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 14:07:04

您可以使用异步模块而不是for循环。这样,您就可以更好地控制控制流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22300019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档