草庐IT

异步IO

全部标签

javascript - 合理数量的同时异步 ajax 请求

我想知道关于通常允许多少同时异步ajax请求的共识是什么。我问的原因是我正在开发个人网络应用程序。在大多数情况下,我将我的请求减少到一个。但是,在某些情况下,我最多同时发送4个请求。这会造成一点延迟,因为浏览器一次只能处理2个。目前,就可用性而言,延迟不是问题。如果有的话,我还需要一段时间才能担心可伸缩性。但我正在努力遵守最佳实践,尽可能合理。你都有些什么想法呢?4个请求是一个合理的数字吗? 最佳答案 我很确定浏览器无论如何都会限制您可以拥有的连接数。如果您有Firefox,请输入about:config并查找network.htt

javascript - Node.js 服务器不提供 Socket.io

据我了解,来自http://socket.io/#how-to-use,node.js自动在服务器上提供socket.io文件。我已经使用npminstallsocket.io安装了socket.io,我可以看到它驻留在服务器根目录之上一级的node_modules中。服务器.js:varstatic=require('./plugins/node-static');varsocketIO=require('socket.io');varclientFiles=newstatic.Server('./client');varhttp=require('http');httpServer

javascript - javascript中具有异步回调模式的无限循环

假设我想向服务器发送一个异步AJAX请求,当它响应时发送另一个请求并永远重复:functionsendXHR(url,callback){//SendXMLHttpRequesttoserverandcallcallbackwhenresponseisreceived}functioninfinite(){sendXHR('url/path',infinite);}infinite();我假设这里我们会很快用完堆栈空间,那么我该怎么做(不阻塞)?传递回调而不是使用return的模式在node.js中特别流行。人们如何创建无限循环?我不相信大多数JS引擎会进行任何类型的尾调用优化。

javascript - 异步 - 传递变量并保留上下文

如果你有以下代码:varasyncConfig={};vara,b;for(vari=0;i如何将变量a和b的值传递给func以便当async.auto(asyncConfig)在for循环之后执行,a和b的上下文被保留?(每次执行func时,a和b的上下文不同。)提前致谢! 最佳答案 varasyncConfig={};vara,b;for(vari=0;i 关于javascript-异步-传递变量并保留上下文,我们在StackOverflow上找到一个类似的问题:

javascript - Socket.IO 消息不更新 Angular 变量

我有一个socket.io客户端-服务器设置,在客户端上运行AngularJS。//Server.jsvario=require('socket.io')(server);io.on('connection',function(socket){socket.on('message',function(msg){//console.log(msg);console.log(msg);io.emit('message',msg);});});正如观察到的那样,它本质上会发出一个message事件,其中的数据存储在变量msg中。然后我有以下客户端代码。varcontainer=angular

javascript - 强制 Protractor 的 onPrepare 等待异步 http 请求

我的Protractorconf.js,onPrepare函数需要发出一个http请求,如下所示,onPrepare:function(done){request.get('http://pepper/sysid').end(function(err,resp){if(err||!resp.ok){log("thereisanerror"+err.message)done()}else{global.sysid=resp.sysiddone()}})它抛出错误,done不是一个函数有没有其他方法可以在我的测试开始执行之前强制调用onPrepare中的回调?

javascript - socket.io 分配自定义 socket.id

我跟踪阵列中连接的每个用户的列表。所以如果有新的连接,它会检查用户是否已经在列表中,如果他已经在列表中,则将他们的socket.id分配给列表中相应的socket.id,否则就添加它们到列表中。这是为了防止同一用户在尝试进行多登录时被计为2个用户。Object.keys(client).forEach(function(key){if(client[key].id==data.id){is_connected=true;socket.id=key;}});我在处理尝试多登录的用户发送/接收的消息/聊天时没有问题。socket.on('chat',function(msg){vardat

javascript - 在 Angular 2 中使用异步管道访问数组的第一项

如何在使用异步管道时访问数组的第一项?我试过(pageTabs$|async)[0]但它没有用。 最佳答案 找到了一种更简单的方法(无需创建自定义管道):将map添加到可观察对象。component.tsthis.activeTab$=this.pageTabs$.map(x=>x[0]);component.html 关于javascript-在Angular2中使用异步管道访问数组的第一项,我们在StackOverflow上找到一个类似的问题: https

javascript - 用于嵌套数据结构处理的递归异步 JavaScript

我正在寻找一个将以下数据结构作为参数的JavaScript函数:letdata=[{value:'a'},{delay:[{value:'b'},{delay:[{value:'c'}]}]},{value:'d'}];如您所见,数据结构是一个对象数组。每个对象都包含一个属性。这些属性中的每一个都是带有字符串的“值”或带有与其值相同类型的另一个数组的“延迟”。该函数应将每个“值”字符串打印到控制台,并在以相同方式处理延迟数组之前为每个“延迟”暂停两秒钟。该函数应支持任何深度的延迟嵌套。上面显示的两层深度延迟嵌套只是一个例子。上述示例数据的函数输出到控制台的应该是(按此顺序,且仅按此顺序

javascript - 保证Javascript中的异步请求回调顺序

在Javascript中,我有两个异步数据请求:$.getJSON('http://foo.com',fooQuery,fooSuccess(data));$.getJSON('http://bar.com',barQuery,barSuccess(data));和两个处理接收到的数据的回调:fooSuccess(data){//Stuff}barSuccess(data){//MoreStuff}如何确保仅在fooSuccess完成后才执行barSuccess?注意事项:我想保持数据请求的原样:异步和非阻塞(因为服务器响应可能需要一段时间)。但是,我希望处理数据的回调按顺序执行。也就