jjzjj

deferred

全部标签

javascript - jQuery Deferred/Promise 设计模式和用例

我的问题很笼统,可以在SO上找到一些相关问题,但这些都不是我要找的。我一直在阅读/玩弄jQueryDeferredobject我看到它在库本身内部被大量使用来处理ajax请求和动画等。我了解一般功能,并认为它已被证明在某些情况下非常有用。jQuery库使用这个概念非常优雅地解决了一些问题。现在我的问题是:我认为概述不同的问题/解决方案场景会非常有用,这些场景可以使用Deferred对象优雅而稳健地解决。在哪些情况下需要使用jQueryDeferred的解决方案?javascript软件设计中的哪些一般模式可以区分,可以使用jQuery延迟功能最优雅地解决?我打算本着每个OO分析师都知道

javascript - 如何使用 jquery 延迟对象检查元素是否在 DOM 中?

我想知道是否可以使用jQuery延迟对象来测试元素是否在DOM中。这是我的想法:functionchkDOM(selector){if$(selector){returndeferred.promise();}}$.when(chkDOM(selector)).then(function(){//dosomething});我不太清楚如何编写代码来实现这一点,但我希望我的问题是有道理的。如果我能让这部分正常工作,那么我基本上可以延迟某些jquery插件的调用,以便它们真正正常运行。谢谢! 最佳答案 我假设您正在运行一个定期检查选择器

javascript - 我如何推迟像 jquery Deferred 这样的 ES6 promise?

1。使用es6promise,但语法不正确。我正在使用es6,并且想做一个延迟的确认对话框://First,createanemptypromise:letpromise=newPromise((resolve,reject)=>{})//Then,showthedialog:let$dialog=$('#dialog-confirm').show();//FAIL:Iwanttotriggerthepromiseresolver,butfailed.$dialog.find('.btn-yes').click(()=>{promise.resolve();})$dialog.find

javascript - 如何将 $.deferred 与不可观察的函数一起正确使用?

举例来说,我有两个函数,里面有随机代码,而且基于用户的系统(慢速、中速或快速),无法判断这两个函数需要多长时间才能完成,所以使用setTimeout尝试开火时不实用function2仅之后function1完成了。如何使用jQuery.deferred制作function2仅在function1之后开火不管时间要求是什么,考虑到这两个函数都是100%非jQuery函数,内部没有jQuery代码,因此完全无法被jQuery观察到?最多,这些函数可能包括jQuery方法,如.css()。它没有时间关联,在旧计算机上运行速度较慢。我如何保证function2未与function1同时执行如果

javascript - jQuery Deferred/Promises 动态数组未按正确顺序执行回调

感谢您深入了解我在这里的误解。我的要求如下:我有一个URL数组。我想同时为每个URL发出AJAX请求,并在第一个请求完成后立即调用第一个回调。然后,如果第二个请求完成,则调用该回调,依此类推。选项1:for(vari=0;i显然这行不通,因为无法保证响应将按正确顺序完成。选项2:varpromises=[];for(vari=0;i这应该可行,但缺点是它会等到所有AJAX请求完成后,才会触发任何回调。理想情况下,我应该能够在第一个回调完成后立即调用它,然后链接第二个回调以在收到该响应时执行(或者如果它已经解析则立即执行),然后是第三个,依此类推。数组长度是完全可变的,并且可以在任何给定

javascript - AngularJs $q.defer() 不工作

我在使用$q.defer();时遇到了一些问题当我改用回调时,我的代码正常工作(View已更新),但使用了$q.defer();不是。这是我的代码:服务:eventsApp.factory('eventData',function($http,$q){return{getEvent:function(callback){vardeferred=$q.defer();$http({method:'GET',url:'/node/nodejsserver/server.js'}).success(function(data,status,headers,config){//callback

javascript - 在对显示模块进行单元测试时如何 stub 私有(private)函数

我一直在构建一个Node模块,它包装了对GitHubAPI的大量调用,并且以我无限的智慧使用揭示模块模式构建了这个模块,使我的包装函数保持私有(private)并且只公开简单的方法。请参见下面的示例:github.shortcuts=(function(){varappPath;varcreateRepo=function(name){vardeferred=Q.defer();github.repos.create({name:name,auto_init:true},function(error,result){if(error){deferred.reject(newError(

javascript - 使用纯 javascript 正确地将 defer 属性添加到脚本标记

所以我尝试像这样添加一个延迟脚本标签constscript=document.createElement('script');script.setAttribute('src','/script.js');script.setAttribute('type','text/javascript');script.setAttribute('defer',true);//thisisthecodeinquestion!document.getElementsByTagName('body')[0].appendChild(script);但我发现结果脚本标记将生成defer属性,如defe

javascript - Jquery Deferred 没有达到最后.then

我有一系列必须执行的功能。除了最后一个,它们都按顺序执行。d1执行,d2执行,d3执行然后done函数内的代码在d4的解析之前执行。不知道为什么。任何帮助将不胜感激。$(document).ready(function(){vard1=functiond1();vard2=functiond2();vard3=functiond3();vard4=functiond4();d1.then(d2).then(d3).then(d4).done(function(){//Codeheredoesnotwaitford4toendbeforeexecuting//HELP!});});fun

javascript - 对页面或其 Controller 进行基准测试

我最近继承了一些AngularJS代码(我无法发布代码),并注意到初始加载有很大的延迟。这是完全不能接受的,我需要优化它。使用Chrome的时间轴,我注意到有很多脚本不是特别有意义。我尝试使用Batarang,但即使是最长的表达式也只是一个日期函数,与其他所有内容相比可以忽略不计。我有一种感觉,它是Controller,因为它的脂肪和意大利面条令人难以置信,我需要以某种方式对该Controller进行基准测试,或者至少在我开始重构之前弄清楚瓶颈是什么。 最佳答案 我最后所做的只是做出promise并减去unix时间的差异,以了解需要