草庐IT

异步IO

全部标签

javascript - 重新连接后未触发 socket.io 'connect' 或 'reconnect' 事件

我在使用Socket.io时遇到问题。代码很简单:varsocket=null;varsocketInit=false;//ifitistrue,usereconnect...functionconnect(){if(!socketInit){socket=io();socketInit=true;//attacheventhandlerssocket.on('connect',function(){console.log('connectfired!');});socket.on('disconnect',function(){console.log('disconnectfired

javascript - 在不同的子域上使用 Socket.IO 服务器和客户端

我有两个子域:socket.mydomain.com-Socket.IO服务器app.mydomain.com-我想连接到我的网络套接字的网络应用程序。在app.mydomain.com的登录页面中,我链接了Socket.IO客户端脚本,并成功创建了一个IO对象,如下所示:constsocket=io();socket.on('message',data=>console.log(data));但是,客户端并没有尝试连接到socket.mydomain.com,而是尝试连接到app.mydomain.com。因为app.mydomain.com没有套接字,所以失败并不断重试。有没有办法

javascript - 使用异步/等待时在 Express 中捕获未处理的异常

看下面的TypeScript代码:app.get('/test_feature',function(req:Request,res:Response){thrownewError("Thisisthebug");});app.use(logErrors);functionlogErrors(err:Error,req:Request,res:Response,next:NextFunction){console.log(err);mongoDal.log(err.message,err);next(err);}在这里,我在请求处理程序中抛出一个错误,它会按预期触发logErrors函数

javascript - 在数组javascript的排序功能中实现异步/等待

我正在尝试在ProtractorElementArrayFinder上实现排序方法。众所周知,所有Protractor方法都返回promise。所以我的排序方法有一个条件取决于promise的解决。我正在为async/await使用节点插件,以使其与低于6的node.js版本兼容。(这里是插件:https://www.npmjs.com/package/asyncawait)这是我的代码,其中this是ArrayElementFinder:varasyncCompare=async(function(a,b){letx=await(a.getText());lety=await(b.g

javascript - JavaScript 中的递归异步函数

我正在尝试在JavaScript中使用async/await编写递归函数。这是我的代码:asyncfunctionrecursion(value){returnnewPromise((fulfil,reject)=>{setTimeout(()=>{if(value==1){fulfil(1)}else{letrec_value=awaitrecursion(value-1)fulfil(value+rec_value)}},1000)})}console.log(awaitrecursion(3))但是我有语法错误:letrec_value=awaitrecursion(value-

javascript - 组件上的异步等待已挂载

这是我的componentDidMount方法。我想设置当前用户的状态,然后在设置该用户时调用该函数。我该怎么做?componentDidMount=()=>{firebase.auth().onAuthStateChanged((user)=>{if(user){this.setState({user:user})}});this.props.retrieveMatches(this.state.user.uid)}我试过使用async/await但我在这里没有正确使用它:asynccomponentDidMount=()=>{awaitfirebase.auth().onAuthS

javascript - 将 socket.io-client 与 webpack 一起使用时未定义全局

当我在我的React网络应用程序中添加socket.io-client插件时出现以下错误。UncaughtReferenceError:globalisnotdefinedatObject../node_modules/socket.io-parser/is-buffer.js(is-buffer.js:4)atwebpack_require(bootstrap:22)atObject../node_modules/socket.io-parser/binary.js(binary.js:8)atwebpack_require(bootstrap:22)atObject../node_

javascript - Socket.io 意外断开连接

我有node.js服务和Angular客户端,使用socket.io在长时间的http请求期间传输一些消息。服务:exportconstsocketArray:SocketIO.Socket[]=[];exportletsocketMapping:{[socketId:string]:number}={};constsocketRegister:hapi.Plugin={register:(server)=>{constio:SocketIO.Server=socket(server.listener);//Wheneverasessionconnectedtosocket,creat

javascript - React Hooks 异步最佳实践

现在使用useEffects,可以将componentDidMount替换为带有Hooks的React组件。场景“对服务器的初始唯一调用”:为实现这一点,useEffect中的DependencyList(useEffect的第二个参数)每次都应该是一个空数组,否则应用程序将向服务器发送每个状态更改的获取调用.这意味着,这是获取数据的最佳实践useEffect(()=>{console.log("useEffect,fetchDatahere");},[]);最好的做法是使用[]作为DependencyList参数来禁用请求每个状态更改的服务器吗?链接到githubhttps://gi

javascript - 为什么 Javascript 中的递归异步函数会导致堆栈溢出?

考虑这个片段:functionf(){returnnewPromise((resolve,reject)=>{f().then(()=>{resolve();});});}f();也可以这样写:asyncfunctionf(){returnawaitf();}f();如果您运行给定的两个代码中的任何一个,您将遇到此错误:(node:23197)UnhandledPromiseRejectionWarning:RangeError:Maximumcallstacksizeexceeded我的问题是为什么?在回答我的问题之前,请考虑我的论点:我了解递归的概念以及如果没有停止条件它如何导致堆