草庐IT

defer-panic-recover

全部标签

javascript - Node.js Q promise ,可以使用 this() 为什么要使用 defer()?

我想做这样的事情:somePromiseFunc(value1).then(function(value2,callback){//insertthenextthen()intothisfunction:funcWithCallback(callback);}).then(function(dronesYouAreLookingFor){//Haveaparty}).done();它没有用。我无法让它工作。我被建议为此目的使用defer()。他们的owndocs说我们应该将deferreds用于回调式函数。虽然这令人困惑,因为他们著名的压平金字塔示例都是关于回调的,但是这个示例太抽象了

javascript - 将额外参数传递给 jquery.Deferred 回调

我想将一些额外的参数传递给jQuery.Deferreddone回调,我现在这样做://dfdgetsdefinedhereasthereturnvalueofjQuery.ajaxvarme=this;varselector=$("#selector");dfd.done(function(response){me.updated(response,selector);});我想知道是否有更好的方法来做到这一点?我以为我已经在某个地方读到过一种无需匿名包装函数即可传递参数的更简洁的方法,但我终生不记得我在哪里读过它,或者我读过什么。到目前为止,谷歌搜索一无所获。

javascript - 对象函数没有方法 defer

我尝试在网格(ExtJS)中呈现进度条,但出现此错误:Objectfunctionhasnomethoddefer这个“神奇”的方法是什么?它有什么作用?为什么找不到?代码:renderer:function(value,meta,rec,row,col,store){varid=Ext.id();(function(){newExt.ProgressBar({renderTo:id,value:0.5});}).defer(25);return'';} 最佳答案 函数defer用于将函数调用延迟X毫秒。试试这样的语法:Ext.Fu

javascript - angularjs deferred 在回调中不起作用

考虑以下示例:.service('movieGetter',['$q','$timeout',function($q,$timeout){this.getData=function(){vardeferred=$q.defer();$timeout(function(){mock.getData(function(data){deferred.resolve(data);});},2000);returndeferred.promise;};}]);由于某些原因,这段代码不起作用,当deferred.resolve()行触发回调时,Controller中的回调不起作用另一方面,这个例子

javascript - 重用 jQuery.post()/jQuery.Deferred() 对象

我正在寻找的最简单的例子是:varmessageLoader=$.post("api/user/messages",{api:data})messageLoader.done(function(data){//dosomething});这非常有效,但只有一次。如果我想更新数据,我必须重新定义所有内容。我似乎找不到任何让我重新启动它的延迟对象调用。即messageLoader.redo(),理想情况下会重新执行POST请求,然后调用相同的“完成”处理程序,而无需我重新定义它。我可以把它全部放在一个函数中,然后简单地再次调用该函数,但这不是我想要的,因为我还想这样做:varmessage

jquery - 当只需要遍历 DOM、$.ajax 和 Deferred 时替代 jQuery

编辑(2012-04-12):由于提出了这个问题,所以它是nowpossible(asofjQuery1.8)tomakecustombuildsofjQuery.对于我从事的大多数JavaScript项目,我想要一个简单、轻量级的UI堆栈。目前我在我的项目中使用jQuery,但是当我实际上退后一步并查看代码时,我实际上只将它用于:DOMtraversaljQuery.ajax和Deferred是否有另一个库(我不想自己处理所有各种跨浏览器和ES3/ES5的差异)可以为我提供这些功能而无需我个人不需要的所有附加内容?我想到了Dojo,但到目前为止我还没有这方面的经验,理想情况下我想听听

javascript - AngularJS $q.all 和多个 $q.defer

即使我已经设法让我的代码工作,但还是有一些我不明白的地方。以下代码段功能正常:socket.on('method',function(){varpayload={countrycode:'',device:''};vard1=$q.defer();vard2=$q.defer();$q.all([geolocation.getLocation().then(function(position){geolocation.getCountryCode(position).then(function(countryCode){payload.countrycode=countryCode;d

javascript - 为什么在 deferred 中使用 setTimeout

我试图了解deferred是如何工作的,所以在所有这些中他们都使用setTimeout。this.callbacks;//arrayoffunctionsreferencethis.callbacks.forEach(function(callback){window.setTimeout(function(){callback(data);},0);});一个例子来自thisquestions使用setTimeoutresolve:function(data){this.promise.okCallbacks.forEach(function(callback){window.set

javascript - jQuery Deferred 不按顺序调用解析/完成回调

代码示例:http://jsfiddle.net/MhEPw/1/我有两个jQueryDeferred对象。我希望发生多个“异步”请求-在它们全部运行后,我希望回调(.done函数)按照指定的顺序运行。不幸的是,它们没有按顺序运行。也许我正在寻找Deferred没有提供的一些功能? 最佳答案 您需要做的是将您的所有请求与一个主延迟对象相关联,并在其promise上注册您的所有回调。主延迟对象需要监听各个请求并相应地解决。实现这一点的最简单方法是预先定义所有延迟对象以避免先有鸡还是先有蛋的问题:vard1=$.Deferred();v

javascript - 我可以在解决后强制 jQuery Deferred/Ajax 执行失败处理程序吗?

一个例子来说明我想做什么。这是我通常会做的:functionsuccess(data,status,jqxhr){if(data.error)returnfailure(jqxhr,status,data.error);//processdata}functionfailure(jqxhr,status,err){...}$.ajax(...).done(success).fail(failure)有什么办法,我可以像这样只用匿名函数来完成这个吗?$.ajax(...).done(function(data,status,jqxhr){if(data.error)//whatdoine