2015-06-17 135 views
1

我正在嘗試爲服務設置一個測試工具,這使得在前端使用一些東西需要大約1秒的時間。

我正在使用q,所以我可以在控制器中調用.then,所以我想通過使用set timeout可以僞造這個,但是我認爲我的語法不正確。這裏是我試過的:

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); 
        }); 

BTW:在角你應該使用$timeout服務,而不是javascript的setTimeout

Aanyway,在$q您還可以找到與您的使用情況的一個例子。