草庐IT

同步异步

全部标签

javascript - 如何使用流类型绑定(bind)异步操作创建者?

我刚开始学习flowtype,我需要一些帮助来理解我头脑中不清楚的两件事。使用https://github.com/reactjs/redux/blob/master/examples/todos-flow例如,我想知道在没有https://github.com/flowtype/flow-typed类型定义的情况下如何控制类型,在这种情况下:https://github.com/flowtype/flow-typed/blob/master/definitions/npm/redux_v3.x.x/flow_v0.33.x-/redux_v3.x.x.js?如果我使用redux定义,

javascript - 从 phantomjs 控制异步退出

我正在尝试使用phantomjs进行一些测试...基本上我想:在我的网络服务器上打开一个页面一旦页面初始化(所有页面js已加载)从phantomjs调用页面js并测试结果退出phantomjs不过phantomjs似乎很难注意到页面何时加载。我可以使用phantomjs在窗口或其他东西上设置一个“测试”变量,以便页面js可以检查它,然后在完成后调用回调。问题是回调只能是页面回调,所以它不能做页面不能做的事情。这对苔丝来说可能没问题,但最后一步是不可能的。我想到了这个:page.onConsoleMessage=function(msg){if(msg=="__quit__"){phan

javascript - 即使在异步加载资源后,Google Page Speed 仍然会出现渲染阻塞问题

GooglePageSpeedInsights"Trytodeferorasynchronouslyloadblockingresources,orinlinethecriticalportionsofthoseresourcesdirectlyintheHTML."上述问题提示我需要2个样式表。因此,我使用以下代码加载样式表以延迟样式表的加载。window.onload=loadResource;functionloadResource(){css_array=[resource1,resource2];css_init(css_array);}functioncss_init(hr

javascript - 使用jQuery promise模拟同步调用

我一直在使用bootbox.js库,异步操作,但我需要以同步方式使用它(例如,在提交表单之前设置一个“确认”窗口)。我不想使用e.preventDefault()取消事件,我想推迟操作直到用户响应模态。目前该库不支持它,但我很好奇是否可以使用promises模拟同步行为?这是一个非常基本的示例,使用链接(而不是表单提交按钮,这是我的最终目标):http://plnkr.co/edit/5NovsuKTeQ7y6SKNTwWp?p=preview 最佳答案 不,这根本不是promise的作用。Promises在这里无法为您提供帮助。链

javascript - Worker 使用同步 XMLHttpRequest 从 GUI 获取数据

我想要一个WebWorker它位于调用堆栈的深处,能够发出同步请求以从GUI获取信息。GUI本身没有被阻塞——它能够处理消息。但是worker栈上的JavaScript并没有写在async/await中。风格。它只是很多同步代码。因此,如果GUI尝试使用postMessage将响应发送回worker,那只会卡在onmessage()队列中。我发现了至少一种适用于当今浏览器的hack。工作人员可以向GUI发送消息以获取它想要的信息——连同某种ID(例如UUID)。然后它可以生成同步XMLHttpRequest--whichisnotdeprecatedonworkers--使用该ID发送

javascript - WebWorkers 和异步共享数据访问。在 Scala.js 中如何?

请考虑包含大型JavaScript的Scala.js类typedarray称为xArr。名为p(xArr)的进程使用xArr作为输入,但需要很长时间才能完成。为了避免脚本超时警告,p(xArr)在WebWorker中运行。回想一下主线程和WebWorker线程之间通信的这些限制:任一方向的通信都采用messagepassing的形式.消息数据必须符合JavaScript的要求structuredclonealgorithm.除非在可选的传输列表中指定,否则消息数据会被复制,而不是传输到/从主线程和工作线程。要传输消息数据而不是将其复制到/从工作线程,数据必须实现Transferable

javascript - webpack 中的异步 block 是什么?

这可能是一个虚拟问题,但在阅读split-chunks-plugindocumentation之后和thisarticleaboutcodesplitting,我仍然无法理解asyncblock指的是什么。split-chunks-plugindocumentation关于chunks属性的声明:[it]indicateswhichchunkswillbeselectedforoptimization.Ifastringisprovided,possiblevaluesareall,async,andinitial.Providingallcanbeparticularlypowerf

javascript - 一个失败的测试会导致其他异步测试失败

我有一个非常基本的karma/jasmine设置,其中一个测试套件包含两个测试。我希望第一个测试失败,第二个测试通过。describe("Thesystem",function(){it("shouldfail",function(){expect(true).toBe(false);});it("shouldsucceed",function(done){setTimeout(function(){expect(1).toBe(1);done();},10);});});但是,当我在浏览器中运行这些测试并单击“调试”按钮打开KarmaDEBUGRUNNER时,我看到两个测试都失败了,

javascript - AngularJS - 将第 3 方异步加载库包装为服务

我有一个异步加载到我的页面的第3方库,我想将它用作服务。如何将加载代码包装在Angular服务中?一般来说,最佳做法是什么?目前我的做法是这样的:angular.module('myAPIServices',[]).factory('MyAPI',function(){return{\\APIisdeclaredattheloadedscriptdoStuff:function(){$window.API.doStuff()}};});然后在Angular范围之外的页面上(function(){varjs=document.createElement('script');varloc=

javascript - 为什么 Facebook Javascript SDK 是异步加载的?

我在我的Facebook应用程序中使用标准的FacebookJavascript代码,这是我在Heroku上的示例应用程序中获得的。我不太了解它,但通过细心,我已经能够修改示例应用程序来执行一些对我有用的基本操作。我的理解是这段代码以某种方式加载了FacebookJavascriptSDK。也就是说,它加载了一个javascript代码文件。它真正加载的是什么文件?为什么我不能像加载任何其他javascript代码文件一样加载它?例如:这种高度复杂的方法的缺点是我无法弄清楚它的正反面,而且因为我不理解它,所以我对如何使用它没有直觉。代码在这里:window.fbAsyncInit=fu