mar*_*xin 3 javascript jquery deferred
我有一个形式的功能:
$.get_members = function() {
var group_id = $('#gid').val();
if($(this).val() == group_id)
return;
var deferr = $.Deferred();
$.get(url)
.done(function() {
...
deferr.resolve();
});
return deferr.promise();
}
Run Code Online (Sandbox Code Playgroud)
而现在的问题是:如何处理情况,何时group_id == $(this).val()?我想做的只是:
var members_deferr = $.get_members();
members_deferr.done(function() {
...
});
Run Code Online (Sandbox Code Playgroud)
一个想法是检查返回值的类型,但它不是很好.第二个想法是解决延迟setTimeout,但我不知道它是否安全.
还有其他想法吗?
如果在当前选择了group_id并且您有组成员,则只需返回已解决的deferrent.将立即调用callback done(),无需检查返回类型.像这样的东西:
$.get_members = function() {
var group_id = $('#gid').val();
var deferr = $.Deferred();
if($(this).val() == group_id) {
deferr.resolve();
}
else {
$.get(url)
.done(function() {
...
deferr.resolve();
});
}
return deferr.promise();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5010 次 |
| 最近记录: |