草庐IT

同步异步

全部标签

javascript - JavaScript 是单线程的吗?如果没有,我如何获得对共享数据的同步访问?

我有一个包含DIV的网页,其中包含一个mouseover处理程序,旨在显示弹出信息气泡。我不希望一次显示多个信息气泡。但是当用户在两个项目上快速移动鼠标时,有时会出现两个气泡。这不应该发生,因为显示弹出窗口的代码取消了之前的弹出窗口。如果这是一个多线程系统,那么问题就很明显了:有两个线程试图显示一个弹出窗口,它们都取消了现有的弹出窗口,然后弹出了自己的弹出窗口。但我假设JavaScript始终是单线程运行的,这会阻止这种情况发生。我错了吗?事件处理程序是否异步运行,在这种情况下我需要同步访问共享数据,或者我应该在库代码中寻找错误以取消弹出窗口?编辑添加:有问题的图书馆是SIMILETi

使用Postman Interceptor谷歌插件捕获抓包信息,并同步到客户端

使用PostmanInterceptor谷歌插件捕获抓包信息,并同步到客户端1、PostmanInterceptor插件同步信息,需要用低版本的postman客户端,现在最新版的不支持谷歌插件我使用的是PostmanInterceptor1.1.1客户端用的postman7.36.7版本2、必须先安装客户端,从网上下载后双击会自动安装,然后进行登录账号(后面插件也需登录账号,是通过账号同步信息的)3、下载PostmanInterceptor插件,是一个后缀为.crx的文件4、打开谷歌浏览器>设置>扩展插件,点开右上角开发者模式。然后将插件直接拖进来(会提示是否添加,确认即可)5、点击浏览器右上

javascript - javascript中的同步代码?

如何同时运行两个独立的函数?如果我想要两个时钟,一个向上计数,另一个向下计数,并且我希望它们同时运行,我该怎么做?如果我这样做了:varup=1;while(true){document.write(up);up++;if(up==11)up=1;}vardown=10;while(true){document.write(down);down--;if(down==0)down=10;}...它会继续计数... 最佳答案 Javascript是单线程的。只有一个线程可以访问该页面。在某些HTML5浏览器中可以使用WebWorker

javascript - 服务器端 js (node.js) 同步

我愿意使用node.js实现一些服务器端代码。node.js(js)是否内置任何同步功能。就像我们一样synchronizedjava中的关键字?我可以让一些代码块同步吗?这样一次只能在线程上执行它? 最佳答案 在Node中,每个代码块都是同步的。Node使用协作式多任务处理;只有当第一段代码返回时,另一段代码才能运行。这就是其事件驱动设计背后的驱动力:您要求为您完成一些缓慢的事情(例如,从文件中读取),然后您指定另一个函数在该时间运行缓慢的操作完成。第一个函数返回,Node可以在等待I/O操作完成时运行其他函数。当I/O准备就绪,

javascript - 如何同步访问 javascript 对象的私有(private)成员

我创建了一个Javascript对象,如下所示:varccStatTracker=(function(){ccmap:{"1":["1","2","3","4"],"2":["4","5"];}return{modifyCCMap:function(){//Codewhichtakesfollowingactions://-adds/removeskeys.//-modifiesarraysstoredasvaluesagainstthekeysinthemap.}})();我有一个DHTMLXGrid组件,它以行和列的形式显示网格。当我编辑网格中的任何单元格时,将调用“onEditC

javascript - 如何在 Javascript 中的 array.forEach 中等待异步函数

我正在尝试在foreach中发出一个async请求以获取数据以便稍后用户使用它,但它对我不起作用。我知道Array.Foreach是一个同步函数,所以我什至尝试了$.when.done但它仍然不会等到它完成。如果它是单个值但它是一个数组,我本可以使用回调。有没有更好的方法通过回调来处理这个问题,以实现在下一步移动之前等待async请求?browseItems.forEach((browseItem:any)=>{AsynchFunction();cosole.log("Step2")}functionAsynchFunction(){console.log("Step1")}我正在尝试

javascript - 有什么方法可以进行同步 PageMethods 调用?

我正在尝试这样做:functionDelBatch(){varuserInfo=get_cookie("UserInfo");PageMethods.DeleteBatchJSWM(userInfo,function(result){window.location="BatchOperations.aspx";});}但它仍然是异步运行的。我需要浏览器真正等到我的代码隐藏执行完毕,然后才可以刷新有一个列表框加载了刚刚从数据库中删除的值,它们不应该是可见的。我遇到的问题是在执行代码隐藏之前窗口位置会刷新,并且对用户来说似乎没有任何内容被删除。 最佳答案

javascript - 如何在异步/等待情况下正确实现错误处理

我使用没有任何自定义库的async/awaitecma6标准。我现在不知道如何才能正确捕获和抛出错误。我有多个异步/等待函数,如果低于严重错误的某处发生我想将错误抛出到所有异步函数的顶部并停止执行该函数。我试图从async/await函数中抛出异常并在目标函数中捕获它,但我在node.js中遇到错误:this.basicAuthLogin=asyncfunction(user){"usestrict";constlogin=newLogin(this.host,this.url,user,user.pw);//getSessionIDthrowserrorthis.sessionID=

javascript - 如何等到数组被填满(异步)

我有一个异步填充的数组,包含28个项目。我想等到数组填满所有项目。functioncheckIfFinished(){return(Results.length>=28);}varisfinished=false;while(isfinished){if(checkIfFinished()){returnResults();isfinished=true;}else//Wait100ms}好吧,但是在Javascript中没有等待函数!我用setTimeout试过了,但我不知道如何插入它......我只是得到太多递归和东西的错误:D谢谢! 最佳答案

javascript - 异步函数上的setTimeout

我有一个异步函数,我希望它在被触发之前有5000毫秒的延迟。我正在尝试使用setTimeout()来实现这一点。这个async函数出现在一个循环运行多次,每次async函数传递不同的数据,所以这里不能使用setInterval()。问题:异步函数立即被触发,没有任何延迟(控制台立即打印5条Done消息,并且没有任何延迟地循环。发生了什么,我该如何解决?Javascript代码someFunction(listings,function(){for(variinlistings){varlisting=listings[i];setTimeout(asyncFunction(listin