草庐IT

异步处理

全部标签

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的数组并以某

Javascript 事件处理和流程控制

我正在尝试构建一个根据提供的输入加载的网页。基本上,我在用javascript处理事件时遇到了一些麻烦。来自python,如果我想在移动到下一个要显示的对象之前等待特定的键盘输入,我会创建一个while循环并在其中放置一个键监听器。python:defgetInput():while1:foreventinpygame.event.get():#returnsalistofeventsfromthekeyboard/mouseifevent.type==KEYDOWN:ifevent.key=="enter":#forexampledofunction()returnelifevent

java - 在页面上处理 Java 表达式语言

我正在从事一个项目的前端工作,该项目为我提供了Java表达式语言标签供我使用。在一个实例中,我需要查看它是返回一个数组还是仅返回一位数据,但我不知道如何使用它。例子:页面有${WebAppContext.buildings[0].location.name}这将输出如下内容:Acme问题是如果那个建筑物位中有更多的东西,我需要输出更多的东西:类似于(伪代码)ifisArray(${WebAppContext.buildings}){foreach(${WebAppContext.buildings}asfoo){//iterateoverwhateverisinthearray}}所以

javascript - 如何在 javascript 事件处理程序中获取对象?

我试图在onclick事件处理函数中获取一个对象。但它没有按我预期的方式工作。例如,如果我运行这段代码:varentries=[{id:1},{id:2},{id:3}];for(vari=0;i我期望的是:this.id:1entry.id:1this.id:2entry.id:2this.id:3entry.id:3但我得到的是:this.id:1entry.id:3this.id:2entry.id:3this.id:3entry.id:3为什么entry对象总是id为3的entry?如何在点击事件处理程序中获取正确的入口对象? 最佳答案

Javascript 图像对象 - 处理 onload 事件

我正在尝试在点击事件时预加载图像://newimageobjectvarimgObject=newImage();//assignthepathtotheimagetothesrcpropertyimgObject.src=document.URL+'image/image.jpg';//checkifimagehasloadedif(imgObject.complete){但是第一次点击时完整的调用永远不会返回true-知道我在这里遗漏了什么吗? 最佳答案 .complete是图像对象的属性,不是您可以附加的事件。使用onload

javascript - 在 JavaScript 中使用 `return false` 时处理 `eval`

我正在处理这样一种情况,我需要将jQuery事件绑定(bind)到页面以处理通过JSF生成的UI更新。唉,JSF糟透了,它会在所有内容上粘贴onclick事件,这抢占了我的任何jQuery工作。感谢SO上的优秀人员,我找到了解决方案:mixingmyjQueryclickeventswithexistingobject'sonclickattribute逻辑是:在页面加载时,获取所有onclick属性并将它们存储在一个变量中。绑定(bind)我的jQuery事件在我自己的jQuery事件之后,我可以eval原始的onclick:eval(onclickValueVariable)这在我

JavaScript:一个一个地执行异步函数

我有一个简单的“异步”JS函数:functionasyncFunc(i){setTimeout(function(){console.log(i);},1000);}如果我想在一个for循环中执行这个asyncFunc5次,即每秒记录1-5次,总共花费5秒。12345我知道jQuery的when().done()可以做到这一点,但是如果我在没有第3方JS库的环境中,实现此目的的最简单优雅的方法是什么?实际上,例如我想写一个util函数,它接受一个异步函数数组,这个util函数可以一个一个地执行传入的函数:functionexecAsyncTasks([asyncTask1,asyncT

javascript - 如何在特定时间禁用点击事件处理程序?

只有JavaScript,没有jquery。代码如下:window.onload=addListeners;functionaddListeners(){for(vari=0;i现在,我想在函数“func()”运行时禁用“点击”5秒。然后,在完全执行“func()”之后,应该会再次自动启用点击。如何只使用JavaScript来做到这一点? 最佳答案 与其禁用点击事件,不如检查变量以查看其当前是否正在运行。varfuncRunning=false;functionfunc(){if(funcRunning)return;funcRun