2016-09-24 4 views
-4

Функция NotifyMe() выполняется только один раз для таймаута. Как исправить?Почему setTimeout выполняется только один раз?

$(document).ready(function(){ 
 
var mydata = []; 
 
$.ajax({ 
 
    url: '3.php', 
 
    async: true, 
 
    dataType: 'json', 
 
    success: function (json) { 
 
    mydata = json.result; 
 
    if (mydata=="yes") 
 
    { 
 
     //notifyMe(); 
 
     setTimeout(notifyMe, 1000); 
 
    } 
 
    } 
 
}); 
 
});

+0

Сколько раз вы ожидаете, что его назовут? 'setTimeout' расписания _one_ execute,' setInterval' расписание выполнения для каждого тика. – vlaz

+0

можете ли вы распечатать значение mydata с помощью console.log (mydata); внутри успеха? –

+0

Почему у вас есть тайм-аут в вашем обратном вызове ajax в первую очередь? Я не уверен, что вы хотите. Вызов ajax происходит только один раз, поэтому вам не нужно будет получать уведомления более одного раза. Если вы хотите продолжать отправлять вызовы ajax, вам нужно будет поместить вызов ajax в функцию, переданную setInterval, чтобы она вызывалась непрерывно. – Jecoms

ответ

2

Попробуйте использовать setInterval вместо SetTimeout.

+0

no setTimeout верен, так как он называет это снова и снова рекурсивным способом –

+0

Что внутри внутри notifyMe? –

+0

да, извините, я думал, что это та же реализация ajax –

Смежные вопросы