Questions tagged «jquery-deferred»

jQuery的延期(也称为promise和future)可用于管理回调队列

10
jQuery的延迟和承诺-.then()与.done()
我一直在阅读有关jQuery延迟和承诺的信息,但看不到使用.then()&.done()进行成功回调之间的区别。我知道Eric Hynds提到.done()并.success()映射到相同的功能,但是我猜是这样,.then()因为所有的回调都在成功完成操作后被调用。 有人可以启发我正确使用吗?

9
将一个Deferreds数组传递给$ .when()
这是正在发生的事情的一个虚构示例:http : //jsfiddle.net/adamjford/YNGcm/20/ HTML: <a href="#">Click me!</a> <div></div> JavaScript: function getSomeDeferredStuff() { var deferreds = []; var i = 1; for (i = 1; i <= 10; i++) { var count = i; deferreds.push( $.post('/echo/html/', { html: "<p>Task #" + count + " complete.", delay: count }).success(function(data) { $("div").append(data); })); …

11
如何使用jQuery延迟?
jQuery 1.5带来了新的Deferred对象和附加的方法.when,.Deferred以及._Deferred。 对于以前从未使用.Deferred过的用户,我已经为其添加了注释。 这些新方法的可能用途是什么,我们如何将它们适应模式? 我已经阅读了API和源代码,所以我知道它的作用。我的问题是,我们如何在日常代码中使用这些新功能? 我有一个简单的缓冲区类示例,该类按顺序调用AJAX请求。(上一个完成后,下一个开始)。 /* Class: Buffer * methods: append * * Constructor: takes a function which will be the task handler to be called * * .append appends a task to the buffer. Buffer will only call a task when the * previous task has finished */ …

4
您如何使用jQuery Deferreds数组?
我有一个需要按一定顺序加载数据的应用程序:根URL,然后是架构,然后最终使用各种数据对象的架构和url初始化应用程序。当用户浏览应用程序时,数据对象将被加载,针对架构进行验证并显示。当用户对数据进行CRUD时,这些模式将提供首过验证。 我在初始化时遇到问题。我使用Ajax调用来获取根对象$ .when(),然后创建一个promise数组,每个模式对象一个。这样可行。我在控制台中看到了抓取。 然后,我将看到所有模式的访存,因此每个$ .ajax()调用均有效。fetchschemas()实际上确实返回了一个promise数组。 但是,最后的when()子句永远不会触发,并且“ DONE”一词永远不会出现在控制台上。jquery-1.5的源代码似乎暗示“空”可以作为传递给$ .when.apply()的对象,因为when()将构建内部Deferred()对象来管理列表(如果没有对象的话)通过了。 这使用Futures.js起作用。如果不是这样,应该如何管理jQuery Deferred数组? var fetch_schemas, fetch_root; fetch_schemas = function(schema_urls) { var fetch_one = function(url) { return $.ajax({ url: url, data: {}, contentType: "application/json; charset=utf-8", dataType: "json" }); }; return $.map(schema_urls, fetch_one); }; fetch_root = function() { return $.ajax({ url: BASE_URL, data: {}, contentType: …



3
什么时候应该使用jQuery deferred的“ then”方法,什么时候应该使用“ pipe”方法?
jQuery的Deferred两个功能可用于实现功能的异步链接: then() deferred.then( doneCallbacks, failCallbacks ) Returns: Deferred doneCallbacks解析Deferred时调用的一个函数或函数数组。 failCallbacks拒绝Deferred时调用的一个函数或函数数组。 pipe() deferred.pipe( [doneFilter] [, failFilter] ) Returns: Promise doneFilter解析延迟时调用的可选函数。 failFilter拒绝Deferred时调用的可选函数。 我知道then()比pipe()这要长一些,因此后者必须增加一些额外的好处,但是到底有什么不同是我所不知道的。两者都使用几乎相同的回调参数,尽管它们的名称不同,并且返回a Deferred和返回a 之间的差异Promise似乎很小。 我已经读过一遍又一遍的官方文档,但总是觉得它们太“密集”,以至于无法真正绕开我的脑袋,搜索已经找到了很多关于一个功能或另一个功能的讨论,但是我还没有发现任何可以真正阐明不同之处的东西。各自的优缺点。 那么什么时候使用then更好pipe?什么时候使用更好? 加成 Felix的出色回答确实有助于阐明这两个功能的不同之处。但我想知道是否有时会比的功能then()更受欢迎pipe()。 显然,pipe()它的功能比强大then(),而且似乎前者可以做任何事,后者可以做。使用的一个原因then()可能是其名称反映了其作用,即终止处理相同数据的功能链的作用。 但是,是否有一个用例需要then()require返回由于返回新值而Deferred无法完成的原始操作?pipe()Promise

2
ReactJS组件的异步渲染
我想在我的ajax请求完成后呈现我的组件。 在下面您可以看到我的代码 var CategoriesSetup = React.createClass({ render: function(){ var rows = []; $.get('http://foobar.io/api/v1/listings/categories/').done(function (data) { $.each(data, function(index, element){ rows.push(<OptionRow obj={element} />); }); return (<Input type='select'>{rows}</Input>) }) } }); 但是我收到下面的错误,因为我正在ajax请求的done方法内返回render。 Uncaught Error: Invariant Violation: CategoriesSetup.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other …

2
延期与承诺
除jQuery版本外,Deferred和Promise有什么区别? 我该怎么用?我只想打电话给fooExecute()。例如,我只需要fooStart()和fooEnd()即可切换html div状态。 //I'm using jQuery v2.0.0 function fooStart() { /* Start Notification */ } function fooEnd() { /* End Notification */ } function fooExecute() { /* Execute the scripts */ } $('#button1').on('click', function() { var deferred1 = $.Deferred(); var promise1 = $.Promise(); deferred1.??? promise1.??? });
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.