草庐IT

异步异常

全部标签

javascript - 如何构建异步函数的测试?

我习惯于使用标准的NodeJsassert库编写Mocha测试,如下所示:describe('Somemodule',()=>{varresult=someCall();it('Should',()=>{assert.ok(...);});})但现在我的电话返回了一个promise......所以我想写:describe('Somemodule',async()=>{varresult=awaitsomeCall();it('Should',()=>{assert.ok(...);});})但它不起作用。我的测试根本不运行。奇怪的是,describe('Somemodule',asyn

javascript - 从函数中抛出和捕获异常

functionconnectTo(url){varxhr=newXMLHttpRequest();xhr.open("GET",url,false);xhr.onreadystatechange=function(){if(xhr.readyState==xhr.DONE){throw"Troubles.";}};xhr.send();}try{connectTo("http://www.google.com");}catch(e){console.log('Exceptionhappend.');}也许“catch”部分将执行(在控制台中出现消息),但异常保持未捕获(=在控制台中出

javascript - IE9 抛出 DOM 异常 : INVALID_CHARACTER_ERR (5)

在下面的脚本中,IE9会抛出一个错误:SCRIPT5022:DOM异常:INVALID_CHARACTER_ERR(5)mootools-1.2.1-core-yc.js,第118行字符1Document.implement({newElement:function(A,B){if(Browser.Engine.trident&&B){["name","type","checked"].each(function(C){if(!B[C]){return;}A+=""+C+'="'+B[C]+'"';if(C!="checked"){deleteB[C];}});A="";}return

javascript - learnyounode #9 杂耍异步

我正在尝试学习nodeschool的learnyounode。Thisproblemisthesameasthepreviousproblem(HTTPCOLLECT)inthatyouneedtousehttp.get().However,thistimeyouwillbeprovidedwiththreeURLsasthefirstthreecommand-linearguments.YoumustcollectthecompletecontentprovidedtoyoubyeachoftheURLsandprintittotheconsole(stdout).Youdon'tn

javascript - 如何解决递归异步 promise ?

我在玩弄promises,我在处理异步递归promise时遇到了麻烦。场景是一位运动员开始跑100米,我需要定期检查他们是否跑完了,一旦他们跑完了,打印他们的时间。编辑以澄清:在现实世界中,运动员在服务器上运行。startRunning涉及对服务器进行ajax调用。checkIsFinished还涉及对服务器进行ajax调用。下面的代码试图模仿它。代码中的时间和距离是硬编码的,目的是让事情尽可能简单。抱歉没有说清楚。结束编辑我希望能够写出以下内容startRunning().then(checkIsFinished).then(printTime).catch(handleError)

javascript - 控制 javascript 异步流的速率(在循环中)

假设您想用一段短代码为列表中的每个文件夹启动一个(随机)进程:varexec=require('child_process').exec;varfolders=[...];//alistfromsomewhere_.each(folders,function(folder){exec("tarcvf"+folder+".tgz"+folder);});如果列表很长,我可能会同时运行大量进程,这是要避免的。以受控速率(此处最多5个并发进程)运行执行的相当简单的方法是什么?编辑:该问题适用于各种异步流(您希望在其中控制速率),而不仅仅是文件夹执行问题。 最佳答案

javascript - 返回 Promise<void> 的异步函数是否在 block 末尾有隐式返回?

publicasyncdemo():Promise{//Dosomestuffhere//Doingmorestuff//...//Endofblockwithoutreturn;}是新的Promise在TypeScript/ES6的block末尾隐式返回?bool类型的例子:classTest{publicasynctest():Promise{returntrue;}publicmain():void{this.test().then((data:boolean)=>{console.log(data);});}}newTest().main();这会打印出true到控制台,因为r

javascript - 在构造函数中调用异步函数。

getUser是一个异步函数?如果需要更长的时间来解决?它是否总是会在我的someotherclass中返回正确的值。classIdpServer{constructor(){this._settings={//someidentityserversettings.};this.userManager=newUserManager(this._settings);this.getUser();}asyncgetUser(){this.user=awaitthis.userManager.getUser();}isLoggedIn(){returnthis.user!=null&&!th

javascript - 异步/等待的环回支持

我正在使用loopback3构建REST服务,我想使用async/await而不是必须使用回调。所以不要这样做:MyModel.myFunction=(callback)=>{MyModel.find({where:{id:2}},(e,data)=>{if(e)returncallback(e);callback(null,data);});};我非常愿意这样做:MyModel.myFunction=async(callback)=>{try{constdata=awaitMyModel.find({where:{id:2}});callback(null,data);}catch(

javascript - 如何链接异步/等待使用依赖于第一次调用的数据

假设我有一个async/await调用一个获取所有用户的API。asyncfunctiongetUsers(){constusers=awaitApi.getAllUsers()returnusers.map(user=>{return{id:user.id,group:'datadependsonsubsequentAPIcall',}})}在返回映射中,我必须执行另一个API调用以获取一些应该在同一范围内的数据。constgroupByUser=Api.getGroupByUserId()我该如何实现?我可以在现有的中放置一个异步/等待吗?我是否创建一个包含所有用户ID的数组并以某