setTimeout與$timeout的區別
setTimeout與$timeout的區別
李鋒2
2017-07-31 16:53:08
TA貢獻1036條經驗 獲得超461個贊
angular里的?
setTimeout是原生的,$timeout是ng封裝過的,setTimeout里面改變數據不會被ng監控到。$timeout可以
TA貢獻152條經驗 獲得超59個贊
Angular中$timeout與window.setTimeout的區別
1. 在$timeout中傳入的函數會被包含在try...catch中,并且在異常時將異常交給$exceptionHandler
2. window.setTimeout返回的是數字id,可以通過window.clearTimeout(id)取消,而$timeout返回的是promise對象,要取消要用$timeout.cancel(返回的promise對象)。
3. $timeout傳入的function會更新作用域內的數據綁定,也就是說在function中對$scope的修改會觸發更新,而window.setTimeout中對$scope的修改不會觸發更新。當然$timeout有第三個參數,默認為true,如果傳入false,則不會更新當前作用域的數據綁定。
舉報