2015-06-17 2 views
1

Я пытаюсь настроить тестовый жгут для обслуживания, в результате чего потребуется около 1 секунды, чтобы поиграть с некоторыми вещами на лицевой стороне.

Я использую q, поэтому я могу вызвать a.then в контроллере, поэтому я мог бы подделать это на данный момент, используя заданный тайм-аут, однако я считаю, что мой синтаксис неверен. Вот что я пробовал:

return $q(function(resolve, reject) { 
         setTimeout(function() { 

         }, 1000).then(resolve); 
        }); 

Я просто хочу, чтобы он подождал секунду, а затем решил. Новым для этого, был бы признателен за любой совет, спасибо!

ответ

4

Действительно, ваш синтаксис неверен. Функция setTimeout не возвращает обещание с помощью метода .then() - вместо этого требуется обратный вызов. Вы хотели бы использовать

return $q(function(resolve) { 
    setTimeout(function() { 
     resolve(); 
    }, 1000); 
}); 

Однако, если вы используете Угловыми, вы просто должны пойти на $timeout service, который делает возвращение обещания сразу.

+0

Имеет смысл, спасибо большое! – ajmajmajma

0
return $q(function(resolve, reject) { 
         setTimeout(resolve, 1000); 
        }); 

КСТАТИ: В Угловых вы должны использовать $timeout службы вместо яваскрипта setTimeout

Aanyway, в $q вы также найдете пример с прецедентом.

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