2015-10-13 4 views
1

Позволяет сказать, у меня есть функция:Возвращение переменного с обратным вызовом

function my_function(some_variable, count, callback) { 
    // some code here, doing jQuery animation, transition, etc., f.e: 

    var temp = $('#some_element').clone().appendTo('body'); 

    temp.animate({'top': newOffset.top, 'left': newOffset.left }, 'slow', function() { 
     if (callback !== undefined) { 
      callback(); 

      return count; 
     } 
     else { 
      return count; 
     } 
    }); 
} 

Так что, когда я называю это f.e так:

my_function('test', 75, function(result) { 
    console.log(result); 
}); 

Мне нужно иметь в консоли 75. Но он возвращает undefined.

Так что мой вопрос в том, как я могу вернуть в обратном вызове такое же значение, как и в count?

ответ

0

Вам необходимо пройти переменную count в качестве параметра функции callback

temp.animate({'top': newOffset.top, 'left': newOffset.left }, 'slow', function() { 
    if (callback !== undefined) { 
     callback(count); //Pass whatever value you want to callback method 
    }   
}); 
+0

Это дубликат http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an- асинхронный вызов и должен был быть закрыт – Tushar

+1

@Tushar, я не согласен, поскольку OP уже использует функцию 'callback()', его проблема в том, что он не может передать 'count'. Не использовать метод обратного вызова. – Satpal

+0

@Satpal Но ответы на вопрос на самом деле не отвечают на этот вопрос косвенно – Tushar