JQuery, когда пользовательские функции оболочки? - PullRequest
0 голосов
/ 23 августа 2011

У меня есть пользовательская функция-оболочка для 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 голосов
/ 23 августа 2011

Вам нужно вернуть объект jXHR (который абстрагирует jQuery Deferred) из вашей функции custom.get(), чтобы сделать эту работу:

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

Вы также должны проверить, если ваш второйпереданный параметр действительно является функцией, позволяющей избежать ненужных ошибок, см. выше.

0 голосов
/ 23 августа 2011

Не забудьте вернуть вызов ajax, И вы должны убедиться, что обратный вызов определен до его вызова.

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