有没有一种方法可以在jQuery中创建一个延迟的对象包装器?
Is there a way to create a deferred object wrapper in jQuery
我读了很多关于新jQuery的文章。延迟的对象。真正有用的一件事是能够将现有对象转换为延迟对象,然后您将获得100%的灵活性,从哪里获得数据。
我在想一些类似
的东西$.makeDeferred({property: "data"}) // returns an object with .promise() method, in resolved state, and that passes the original object as data/context to any callback function
有没有人知道这个方法是否已经存在,或者如何去创建一个?
你不需要包装你的对象来获得这种效果,因为大多数作为参数传递承诺的方法将把普通对象视为已经解析的承诺。
也就是说,如果你真的想要这个,试试这个:
(function($) {
$.makeDeferred = function() {
var d = $.Deferred();
d.resolve(arguments);
return d.promise();
};
))(jQuery);
这至少允许你处理你想调用的方法的承诺,例如my_promise.done()
,而不是传递的承诺,即$.when(my_promise)
的情况。
[未经测试,可能不工作,E&OE等]
编辑
实际上,我认为你所要做的就是把你的普通旧数据包装在$.when
:
$.when({property: "data"})
相关文章:
- 如何在一个元素动画之后延迟
- 如何将一个方法延迟到另一个方法首先完成,javascript
- JavaScript/jQuery-添加添加和删除类与下一个函数之间的延迟
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 从另一个函数延迟解析的返回
- 如何在另一个任务中正确使用延迟的gump任务返回的值
- jQuery动画的持续时间就像一个延迟
- 是否有一个Javascript函数可以使代码在运行时延迟
- jQuery-在窗口滚动上运行一个函数,没有任何延迟
- jQuery/Javascript函数延迟运行,直到另一个函数完成(如果需要)
- 节点 js 从客户端和另一个节点模块调用相同的延迟函数
- 在 Javascript/jQuery 中的循环末尾添加一个延迟
- 如何使用 window.open 创建一个不确定延迟的弹出窗口(用于社交身份验证),而弹出窗口阻止程序会阻止它
- jQuery/Javascript - 延迟一个函数的执行,直到另一个函数完成
- 在 JavaScript 中延迟一个又一个函数的最佳方法
- 延迟链接 - 然后在上一个调用完成但出现错误时调用成功回调
- 如何在另一个动画正在进行时延迟运行动画
- jQuery: $.when 延迟的 AJAX 调用 — 一个失败的调用会取消其他调用
- 我想延迟一个链接的时间为500与javascript
- 当使用textarea在图像上键入时,文本延迟一个字符