使循环同步节点js web-kit
Make loop synchronous node js web-kit
我的app node.js webkit的目标是扫描每个代理文件。txt,并说如果代理工作。但我有一个问题,当我的游戏发布时,他不会等到测试结束。把"Get"放到第9行。当测试第一行时,var n位于file.txt文件的最后一行如何等待测试行11结束后再继续循环?
var file = e.dataTransfer.files[i].path;
content = fs.readFileSync(file, "UTF-8");
var lines = content.split("'n");
for (var n = 0; n < lines.length; n++)
{
var arr = lines[n].split(":");
http.get({host: arr[0], port: arr[1], path: "http://www.google.fr", agent: false}, function(res, req) {
console.log(req);
if(res.statusCode == 200){
el.className = '';
el.innerHTML = arr[0] + ':' + arr[1] + ''n';
}
});
}
以下是David的详细回答:
var async = require('async'); // make sure you install async (do "npm install async" from command line)
var file = e.dataTransfer.files[i].path;
content = fs.readFileSync(file, "UTF-8");
var lines = content.split("'n");
async.each(lines, function(line, callback) {
var arr = line.split(":");
http.get({host: arr[0], port: arr[1], path: "http://www.google.fr", agent: false}, function(res, req) {
console.log(req);
if(res.statusCode == 200){
el.className = '';
el.innerHTML = arr[0] + ':' + arr[1] + ''n';
}
callback();
});
},function(){
console.log("done");
});
您可以在http。获取回调并使用"bind"调用它,以在每次调用中保存您的数据。
var file = e.dataTransfer.files[i].path;
content = fs.readFileSync(file, "UTF-8");
var lines = content.split("'n");
var counter = 0;
var callback = function(res, req) {
console.log(req);
if(res.statusCode == 200){
el.className = '';
el.innerHTML = this[0] + ':' + this[1] + ''n';
}
counter++;
if(counter == lines.length) {
//do whatever you wanna do after all calls
}
};
for (var n = 0; n < lines.length; n++){
var arr = lines[n].split(":");
http.get({
host: arr[0],
port: arr[1],
path: "http://www.google.fr",
agent: false
}, callback.bind(arr));
}
我建议你看看async.js库。它有大量的函数来处理javascript的异步特性。具体来说,您可能希望使用async.each
函数。
为了给你一点概念,看一下这个:
async.each(..., function( file, callback) {
http.get(...,function(){
callback();
});
},function(){
console.log("done");
});
或者如果您想一个接一个地使用async.eachLimit
, 1
的限制
相关文章:
- 托管时,angular.js web应用程序中未显示内容
- 在JS web应用程序中,如何确保具有访问令牌的恶意用户无法刷新它
- 节点.js Web 服务器中的结束后写入错误
- 节点.js Web 服务器不会重新加载
- 如何从节点.js Web 服务器连接到数据库服务器
- 将 Outlook 与 JS Web 应用程序集成
- 构建一个角度合理的 JS Web 项目
- Node.js Web 服务是什么样的
- 如何在我的节点中包含另一个参数.js Web 服务
- 使用Backbone.js在待办事项中对数据集合进行分页.js Web应用程序
- Node JS web服务器中的函数管道
- 如何在JS web worker中循环查询worker的可用性而不阻塞
- 从客户端向Node.js Web服务器发送JSON
- Node.js Web服务器;显示pgp-asc文件的内容,而不是提示下载
- js web工作程序内存泄漏
- 我应该如何编写一个同时包含服务器端和客户端代码的node.js web应用程序
- JS/web调试器跟踪HTTP请求的来源
- 如何在angular js web应用中使用ckeditor
- 如何通过angular js将数组插入到node js web服务中
- 使循环同步节点js web-kit