jjzjj

Synchronous

全部标签

javascript - 同步 forEach 循环(等待它结束)

我在Node.js中有一个函数,它接受一个数组并循环遍历它,对每个元素进行一些耗时的计算。这是该函数的super简化版本:varanalyze_data=function(data){data.forEach(function(elm){if(elm.myProp==true){returntrue;}});returnfalse;}本质上,如果任何元素的属性myProp等于true,我希望函数返回true。如果没有元素满足此条件,则该函数应返回false。但是,代码从不等待forEach循环完成。换句话说,如果数组中的第100个元素满足条件,则函数应返回true。相反,它会跳到ret

javascript - 在 Node.js 中等待异步函数返回

假设,我在Node.js中有一个异步函数,基本上是这样的:varaddAsync=function(first,second,callback){setTimeout(function(){callback(null,first+second);},1*1000);};现在我当然可以以异步方式调用这个函数:addAsync(23,42,function(err,result){console.log(result);//=>65});我想知道的是,您是否可以通过某种方式同步调用此函数。为此,我想要一个包装器函数sync,它基本上执行以下操作:varsync=function(fn,pa

javascript - 向回调函数添加额外的参数

我正在Node.js中构建一个系统,该系统应该在文件夹数组中查找所有文件,统计它们,然后使用该信息做一些额外的工作。我正在使用fs.readdir()从每个文件夹同步获取所有文件。我的代码如下所示:for(i=0,max=paths.length;i问题是,根据readdir()的执行速度,handleDir()得到了错误的路径。发生这种情况是因为在回调运行时,下一个循环已经开始-这意味着路径变量已更改。因此,我需要做的是以某种方式将该路径变量锁定到它的特定回调函数。我想不出任何好的方法-谁有一些想法? 最佳答案 没有block作用

Javascript 节点获取同步获取

我正在尝试使用node-fetch和nodejs对我的个人api进行api调用。随着我的数据库在幕后更新/更改,我希望能够在此期间同步更新某些值。我知道async和await存在,但通过我所有的谷歌搜索,我仍然不太了解它们或它们如何与获取请求交互。这是一些示例代码,我正在尝试开始工作,但仍然只是未定义的日志constfetch=require('node-fetch');consturl='http://example.com';letlogs;example();console.log(logs);asyncfunctionexample(){//Dothingsherelogs=a

javascript - AngularJs: $http 同步调用

我有一个API调用服务,如下所示,getValue:function(input){vardeferred,url;deferred=$q.defer();url="url";$http.post(url,input).success(function(data,status,headers,config){returndeferred.resolve({success:true,data:data,status:status,headers:headers,config:config});}).error(function(data,status,headers,config){re

javascript - 从WebWorker同步获取数据?

虽然我知道JavaScript本质上是单线程的并且通常不赞成这样的事情,但我想知道是否有任何方法可以让WebWorker等待直到一些数据从主线程可用而不破坏调用堆栈WebWorker。因为这是一个有趣的项目,我可以使用新技术和不能在旧版浏览器上可靠运行的东西,而且我不介意深奥的hack,只要它们有效。我想到的其他一些解决方案:在循环中不断轮询LocalStorage,直到在预定键处有数据。这似乎可行,因为即使在循环中轮询时,其他线程的LocalStorage更新也应该对当前线程可见,从所有discussions判断。关于LocalStorage的线程安全以及让多个选项卡写入同一个Loc

javascript - 使 FB.api() 调用同步

我正在FBjavascriptSDK之上创建fQueryAPI。到目前为止一切正常,但我现在卡在FB.api调用中了。实际上,我正在尝试使用FB.api函数加载facebook用户对象,即“/me”。functionsomefunc(){varr=fQuery.load(selector);//selector="me"returnr;}fQuery.load=function(selector){fQuery.fn.response="";returnFB.api("/"+selector,function(response){//wegetresponsehere.});}是否可以

javascript - 如何在 Javascript 中编写阻塞同步方法?

我正在尝试模拟一种需要很长时间进行测试但无法在Javascript中找到执行此操作的好方法的方法。除了写一个很长的for循环之外,还有什么好的方法吗? 最佳答案 aloopthatcheckstime怎么样??functionsleep(milliSeconds){varstartTime=newDate().getTime();//getthecurrenttimewhile(newDate().getTime() 关于javascript-如何在Javascript中编写阻塞同步方法

javascript - AngularJS 在 app.run() 中的 promise

这个问题在这里已经有了答案:AngularJS:Initializeservicewithasynchronousdata(10个答案)关闭5年前。我正在研究angularJs和typescript项目。在启动客户端应用程序和加载UI之前,我必须进行同步http调用并从服务器获取一些数据。我在互联网上搜索,看到每个人都在谈论promise,嗯,好吧,为什么不呢。所以我在我的app.run()中使用了promise(进行$http调用并使用$q返回promise)。也许我什么也没遗漏,因为这根本不起作用。Angular启动app.config(),然后app.run(),...但是Ang

javascript - 为什么仅调用同步函数时 javascript promises 是异步的?

在测试中,我发现JavaScriptPromises总是是异步的,无论它们的链中是否包含任何异步函数。这里是一些代码,显示了控制台中的操作顺序。如果你运行它,你会看到即使每个函数都是同步的,输出显示两个aPromise()调用是并行运行的,并且“令人惊讶的是,这是在运行2完成后发生的”不在运行2完成之前发生。functionaPromise(){returnnewPromise(function(resolve,reject){console.log("makingpromiseA")resolve(bPromise());console.log("promiseAresolved")