我正在學習Angular JS,當時我正在嘗試瞭解承諾和異步編程,我對$q.defer()
有懷疑。我的觀點是這樣的:平時人們,他們做這樣的事情的承諾,考慮到$ Q的工作已經可以
function someAsyncFunction() {
var deferred = $q.defer();
/* Do things and if everything goes fine return deferred.resolve(result)
otherwise returns deferred.reject()
*/
return deferred.promise;
}
這是什麼真正在做什麼?當我們執行var deferred = $q.defer()
時,它立即將該函數的所有執行切換到另一個線程,並返回作爲此操作結果參考的promise,該結果仍在那裏執行?
這是我們在創建異步方法時應該考慮的方式嗎?
JavaScript是在$ Q [鏈接](HTTPS AngularJS API給單線程(不含網絡工作者) – Lucius
很好的解釋://文檔.angularjs.org/API/NG /服務/ $ q) – ravi