草庐IT

异步处理

全部标签

javascript - jquery .done() 中的异步回调函数未执行

为什么将异步函数作为jQuery的回调函数deferred.done()不行?即为什么jqueryObj.fadeTo("slow",1).promise().done(asyncFunc);不行,但是jqueryObj.fadeTo("slow",1).promise().done(function(){asyncFunc(););是吗?(另外,请注意jqueryObj.click(asyncFunc)确实有效。)例子:TitleItemItem...标题完成淡入后,列表中的每个项目按顺序淡入。淡入淡出时间为20000毫秒,但列表项之间的延迟为250毫秒(因此下一个列表项开始淡入,而

javascript - 作为异步验证的结果,我如何显示 redux-form 警告?

Redux-forms支持validationerrorsandwarnings.错误会显示一条消息并阻止提交表单,而警告只会显示一条消息。Redux-forms也支持asyncvalidation.我错误地认为异步验证错误和警告会被支持,但事实并非如此。不幸的是warningsarenotofficiallypossiblewithasyncvalidation.目前需要相当大的努力才能摆脱使用redux-forms,所以我试图找到一个足够的解决方法。一种解决方案是手动向表单添加警告。如果这是可能的,那么异步验证可以大部分正常执行,但在最后设置警告,而不是提供预期的错误对象。但我查看

javascript - 在 promise 中处理错误时返回成功

我有一个处理通过WebAPI执行的HTTP请求的promise:promise=promise.then(r=>{//...},error=>{if(error.status==404){//HereIcanfixanerrorandcontinueproperly}else{//Heretheerrorshouldbepropagatedfurtherinthepromise}}//laterinthecode:promise.catch(r=>{/*Moreerrorhandling*/});在代码的后面,这个promise链接到更多的错误检查。在出现404错误的情况下,我实际上可

javascript - 排队异步 HTTP 文件上传

有没有一种方法可以在不借助Flash或Silverlight的情况下对文件上传进行排队,而只需巧妙地使用表单和JavaScript?请注意,上传应异步执行。我所说的“排队”上传是指如果用户尝试上传多个文件,则不应同时传输这些文件,而应在单个HTTP连接中一次传输一个文件。 最佳答案 由于规范的限制,我认为不可能在单个HTTP连接上执行此操作。但是,通过放置可能会得到几乎相同的行为。单独表单中的字段(使用HTML或JavaScript)并按顺序提交。将他们的目标放在上并使用iframe.onload事件触发列表中的下一个表单。补充说明

javascript - 输入类型="submit",onclick处理程序调用this.form.submit(),并且不返回任何值

编辑:在考虑回答问题之前,请仔细阅读问题的所有内容。我既不是在生产代码中使用内联事件处理程序的可取性,也不是在实现我所引用的文章所promise的结果的最佳方法。这是关于Javascript语义和浏览器实现细节的问题,而不是关于最佳编码实践的问题。听起来像一场噩梦,对吗?但是我发现一些onlineadvice提倡这样做,以防止再次提交表单:撇开对内联事件处理程序的弊端的任何讨论,我在这里看到的问题是:标签的类型是"submit",因此提交其包含形式是其默认行为;onclick处理程序显式提交包含表单;onclick处理程序不返回false以防止默认行为(请参见1)。凭直觉,我认为单击此

Javascript:如何通过异步递归树遍历控制流?

我需要在树上递归,以使用异步操作在特定节点上执行操作。如何控制流,以便在完成后可以访问节点?这是一个示例情况:data={name:"deven",children:[{name:"andrew"},{name:"donovan"},{name:"james",children:[{name:"donatello"},{name:"dan"}]},{name:"jimmy",children:[{name:"mike"},{name:"dank"}]}]};我有一个函数,目标是遍历树并大写以'd'开头的所有名称。之后,我想将树传递给另一个函数以做更多的工作(可能删除所有以“a”开头的名

javascript - Node.js 和 Multer - 在回调函数 (req,res) 中处理上传文件的目的地

我是Node.js的新手,最近遇到了一个简单的问题。我正在使用multer模块上传图片。在我的网络应用程序中,所有用户都有一个唯一的ID,我希望将上传的图像存储在一个目录中,该目录将根据他们的ID命名。例子:.public/uploads/3454367856437534这是我的routes.js文件的一部分://loadmultertohandleimageuploadsvarmulter=require('multer');varsaveDir=multer({dest:'./public/uploads/'+req.user._id,//error,wecannotaccesst

javascript - 如何避免这种异步惰性模式?

很多时候,我需要在Javascript中编写这样一个延迟异步加载:if(myvar!=undefined){doSomeTreatment(myvar)}else{loadMyVarAsynchronously().then(function(value){myvar=valuedoSomeTreatment(myvar)})}在这里,myvar是散列的某个属性,而不是局部变量。loadMyVarAsynchronously异步加载myvar的值(例如,使用Promise或JQueryDeferred)是否有一种模式可以避免在此代码中将以下行写两次?doSomeTreatment(my

JavaScript:将同步代码调整为异步,以支持 IE8?

我正在处理一个数据密集型网站,我需要支持IE8。我在IE8中收到一些“运行缓慢的脚本”错误,因此我正在调整我的代码以在旧浏览器的循环期间定期暂停。这是我当前的代码:combineData:function(xData,yData,values){varcombinedData=this.combineDatasets(xData,yData,values.x,values.x_val);combinedData=this.calculateRatiosForData(combinedData);//variousotherdataoperations,thencontinuetoset

javascript - 是否可以仅使用 CSS 对 innerHTML 的更改进行动画处理?

我的纯JS脚本正在更改中的文本元素只需使用innerHTML.是否可以不使用jQuery而仅使用CSS为这种变化设置动画?如果是,怎么办?谢谢! 最佳答案 在设置innerHTML之前添加一些类到容器,通过CSS设置预动画状态,然后设置innerHTML并删除该类。如果容器设置了过渡,它应该动画到干净状态。.container{transition:all1s;max-height:300px;}.container.pre-animation{opacity:0;max-height:0;}setTimeout确保效果更明显var