草庐IT

互斥与同步

全部标签

javascript - 同步执行从 .each() 返回的脚本,但不延迟完成顺序

情况是我从API动态加载一组脚本,然后通过eval()调用。我不关心调用脚本的顺序,但我不希望同时调用它们中的任何一个。即脚本A、B、C可以按C、B、A的顺序返回,我想在C返回的时候立即开始eval(C),但是我想要eval(B)等待eval(C)完成。先不深入复杂的代码,这里是它的核心,其中“instances”是一个字符串数组。$.each(instances,function(index,instance){varapiUrl="http://the-api-url.com/"+instance;$.getJSON(apiUrl,function(data){//exceptId

javascript - JavaScript 中的互斥量——这看起来像是一个正确的实现吗?

这不是一个完全严肃的问题,更像是一个淋浴的想法:JavaScript的await关键字应该允许一些感觉非常像普通“并发语言”中的互斥体的东西。functionMutex(){varself=this;//stillunsureabouthow"this"iscapturedvarmtx=newPromise(t=>t());//fulfilledpromise≡unlockedmutexthis.lock=asyncfunction(){awaitmtx;mtx=newPromise(t=>{self.unlock=()=>t();});}}//Lockawaitmutex.lock(

javascript - 如何在javascript中将异步调用与同步调用结合起来

我有点开始学习javascript并且有一个关于组契约(Contract)步和异步函数调用的问题。这将只是一个理论问题,但我希望它能传递思想。假设我们有一个javascript程序来决定我需要购买多少香蕉和橙子。console.log('buy%dbananasand%doranges',bananas,oranges)现在,我可以决定我能买多少香蕉,但我需要问我妻子她想要多少橘子,所以我给她发了短信。(我可以写一个异步函数来表示这个)。这将是我的直接方法:varbananas=10;varoranges=0;textWife('askAboutOranges',function(nu

javascript - 关于 underscore.js 中的函数是异步还是同步的一些担忧

我一直在写这样的代码,它运行良好。varresult=_.filter(array,function(item){returnitem[key]===k;});...//logicusingthevariableresult但今天我突然意识到这在技术上可能是错误的,因为过滤器可以异步运行并且结果在过滤器行下方的代码中不可用。filter功能是同步实现的吗?还是我必须牢记过滤器函数异步运行?提前致谢! 最佳答案 你可以看看sourcecode[github]://Returnalltheelementsthatpassatruthte

javascript - crypto.pbkdf2 是异步的,如何将其视为同步?

我在node.js中使用pbkdf2来散列密码。我的问题是我正在响应身份验证请求,如果传递的凭据正确,我正在进行身份验证。我假设pbkdf2是异步的,因为它可能会花费大量时间(取决于迭代的大小)。然而,将剩余的身份验证逻辑移动到一个单独的方法中以利用回调似乎有点难看。有没有比使用计时器或将所有连续的身份验证逻辑放入一个单独的函数中更好的方法?我知道大多数人会说我应该使用回调,但在我的用例中这没有意义。在将pbkdf2应用于传递的密码之前,我无法继续身份验证。 最佳答案 根据Node.jscryptodocs,PBKDF2函数既有异步

javascript - 使 Meteor 方法同步

我一直在尝试使这个函数同步。我已经阅读了几篇关于Async的StackOverflow帖子,但我无法理解如何实现同步。截至目前,它是异步的,因此它在进入回调函数之前返回undefined。我从客户端调用它:Meteor.call('screenName',function(error,result){if(error){console.log(error);}else{window.alert(result);}}这是服务器端方法:Meteor.methods({'screenName':function(){T.get('search/tweets',{q:'#UCLA',count

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准备就绪,