jquery什么时候自定义包装函数?

时间:2011-08-23 16:50:59

标签: javascript jquery callback jquery-deferred

我有一个围绕jquery ajax的自定义包装函数。

custom.get = function (path, callback) {
  // do other things
  $.get(path, function () {
    callback()
  })
}

操作

$.when(custom.get(path), custom.get(path)).done(function (result1, result2) { callback})

似乎不起作用。它应该工作吗?做延期的任何替代方案?

2 个答案:

答案 0 :(得分:0)

不要忘记返回ajax调用,你应该检查以确保在调用之前定义了回调。

custom.get = function (path, callback) {
  // do other things
  return $.get(path, function () {
    if(callback)
       callback()
  })
}

答案 1 :(得分:0)

您需要从jXHR函数返回Deferred对象(它抽象jQuery custom.get())才能使其工作:

custom.get = function (path, callback) {
  // do other things
  return $.get(path, function () {
     if( typeof callback === 'function') callback();
  })
} 

你还应该检查你的第二个参数是否传入,真的是一个避免不必要错误的函数,见上文。

相关问题