草庐IT

python异步编程小抄

全部标签

javascript - 异步加载诺基亚 map Javascript API

我正在尝试异步加载诺基亚mapjavascriptAPI:varoScript=document.createElement('script');oScript.type='text/javascript';oScript.async=true;oScript.src="http://api.maps.nokia.com/2.2.3/jsl.js?with=maps,positioning,placesdata";document.body.appendChild(oScript);正如预期的那样,它不会立即起作用,所以我尝试覆盖document.write认为这可能是问题所在,但无济

javascript - 异步 API 是否应该同步抛出?

我正在编写一个JavaScript函数,它发出HTTP请求并返回对结果的promise(但这个问题同样适用于基于回调的实现)。如果我立即知道为该函数提供的参数无效,该函数应该同步throw,还是应该返回一个被拒绝的promise(或者,如果您愿意,使用调用回调>错误实例)?异步函数应该始终以异步方式运行有多重要,尤其是在错误情况下?如果您知道程序未处于适合异步操作继续的状态,是否可以throw?例如:functiongetUserById(userId,cb){if(userId!==parseInt(userId)){thrownewError('userIdisnotvalid')

javascript - JS async/await - 为什么 await 需要异步?

为什么使用await需要将其外部函数声明为async?例如,为什么这个mongoose语句需要它所在的函数来返回一个promise?asyncfunctionmiddleware(hostname,done){try{letteam=awaitTeams.findOne({hostnames:hostname.toLowerCase()}).exec();done(null,team);}catch(err){done(err);}}我看到运行时/转译器将Teamspromise解析为它的值(value),并发出异步信号它“抛出”被拒绝的promise。但是try/catch会“捕获”

javascript - meteor - 在返回之前同步多个异步查询?

所以我有一个Meteor方法应该告诉服务器向3rd方API发送多个API请求,然后将这些查询的结果组合成一个数组,返回给客户端。但是,我似乎找不到让服务器等到所有API查询完成后再返回结果的方法。代码的同步版本,只是一个接一个地获取数据API调用,是这样的:Meteor.methods({fetchData:function(APILinks){vardata=[];APILinks.forEach(function(APILink){varitems=HTTP.get(APILink).content.items;items.forEach(function(item){data.p

javascript - 以编程方式在jstree中添加节点

我试图在按钮点击时以编程方式在jstree中添加一个新节点,以及在contextmenu创建点击时,但存在一些问题。Here是fiddle的链接。createnode 最佳答案 这是你的fiddle,固定工作:http://jsfiddle.net/3q9Ma/223/您使用数组调用create_node,这是错误的,字符串值'null'也不是创建根节点的正确方法-使用特殊的字符串值'#'(在以后的版本中null也可以,但不是字符串)。您可能会考虑升级jstree版本-您的fiddle使用的是非常早期的测试版。还要记住jstree本

javascript - 异步/等待正确的错误处理

假设我们有一个在用户登录时运行的操作(express,node)。这是有效的代码,使用大量回调编写:checkIfEmailAndPasswordAreSet(email,password,(error,response)=>{if(error)returnerrorResponse(403,'validationerror',error)findUserByEmail(email,(error,user)=>{if(error)returnerrorResponse(500,'dberror',error)if(!user)returnerrorResponse(403,'usern

javascript - 如何使用jasmine测试一个需要很长时间才能响应的异步函数?

我正在使用一个函数从webapi获取数据。基本上使用$.ajax。我现在用waits()像这样测试它:describe('xxxxxxxxxxxxxxxxxxxxx',function(){varr;it('fetchFilter',function(){runs(function(){model.fetch(opts).done(function(data){r=data;});});waits(2000);runs(function(){expect(r[0].gender).toBeDefined();});});});问题是:不能保证waits(2000)会很好地完成这项工作。

javascript - 如何以编程方式设置 Kendo UI 网格列宽

我想以编程方式设置KendoUI网格列宽。我正在使用以下代码:functionsetColumnWidths(grid,options){for(vari=0;i执行语句后在chrome中调试时,grid.columns[i].width似乎已适当设置为新值,但GUI中没有任何变化,列宽保持不变。我错过了什么? 最佳答案 您需要通过其元素而不是其定义来更改网格的宽度。Kendo网格包含标题和内容,因此您需要更改两个元素。改用这段代码$("#grid-id.k-grid-header-wrap").find("colgroupcol"

javascript - 如何在我的 list 文件异步加载后加载页面 javascript

我正在尝试将我的应用程序转换为异步javascript加载:问题是在异步加载Jquery之前正在运行任何特定于页面的脚本。我怎样才能推迟这些,直到加载application.jslist文件。我尝试将我的页面js包装在$(window).load(function(){});中,但这没有帮助。我仍然看到以下错误:UncaughtReferenceError:$isnotdefined更新:这似乎对我有用,但我希望有人确认这是正确的方法:然后页面脚本如下:functionpageScripts(){//dosomething} 最佳答案

javascript - 如何在类似于 Python timeit 的 JavaScript 中计时函数

如何测量JavaScript中函数的执行时间?最好类似于Pythontimeit。 最佳答案 没有与timeit.py等效的内置模块,但您可以自己轻松地为代码的执行计时。您应该使用performance.now()而不是Date.now(),因为它更准确。来自MDN文档:Theperformance.now()methodreturnsaDOMHighResTimeStamp,measuredinmilliseconds,accuratetofivethousandthsofamillisecond(5microseconds)va