草庐IT

异步通信

全部标签

javascript - express.js(或类似)应用程序的异步初始化

考虑一个示例:我有以下express.js应用程序(请参见下面的代码片段)。我希望在整个应用程序生命周期内与数据库建立一个持久连接,并与我自己的服务建立一个持久连接(这需要异步调用才能启动)。还有一些入口点,即不仅可以通过HTTP协议(protocol)访问我的应用程序。当然,我想避免服务初始化代码重复,可能会有多个这样的异步初始化服务。/*app.js*/varapp=require('express')();//setviews,useroutes,etc.vardb=require('monk/mongoose/etc')(...);//happily,usuallyit'sas

javascript - 在生产中使用 SystemJS/jspm 加载异步、es5 模块

我希望能够使用System.import()异步加载依赖项,但不必在生产运行时将ES6转换为ES5。我希望将这些模块转换为单独的ES5模块,仅在需要时才获取这些模块。我不希望它们成为主包的一部分。开发工作流模块在我的生产构建期间有效加载,这实际上令人担忧,因为我不想包含任何允许转换的依赖项。我有一个工作流程,我使用jspmbundle和jspmunbundle在开发和生产配置之间切换。在我的开发环境中,我包括以下脚本:System.import('src/main');制作工作流程在生产中,我使用jspmbundle--inject将bundles选项注入(inject)到System

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 - AngularJS 中的重型 Controller 通信

我已经使用AngularJS实现了一个单页应用程序。该页面由中间的内容区域和围绕中心组装的部分组成,这些部分显示附加信息并提供操作中心的方法。每个部分(称为SideInfo)和内容区域都有一个单独的AngularJSController分配给它们。目前,我通过$rootScope.$broadcast和$scope.$on()进行通信,例如app.controller('PropertiesController',function($scope,$rootScope){$scope.$on('somethingHappened',function(event,data){//react

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=