【发布时间】:2017-04-03 22:08:47
【问题描述】:
所有, 我是 Angular 框架的初学者,一直在阅读 $http 服务。我以为我理解了 Angular JS 中的 Promise 对象,直到我想到了以下问题。你能帮我理解吗?
– 当我从 Angular 进行 REST 调用时,Angular 在执行调用 REST API 的 js 中的其他步骤之前不会进行其余调用。这是因为它是单线程的。好的,我明白了。那么它什么时候执行 REST 调用呢?可能是在当前JS中的所有指令都完成之后?如果是,
- 为什么我们甚至称它为异步?
- 其次,在它执行 REST API 期间(假设 REST API 导致输出不早于 2 秒),在它调用 REST API 之后,Angular 是否会等待 2 秒而不做任何事情?
如果 $http 服务一看到就异步执行 REST API,
- 谁产生了第二个线程来执行 REST API?框架?如果是这样,那么他们是否让 Javascript 不再是单线程的?
- 其次,当服务返回而主线程甚至还没有完成执行我的 js 中的所有行时,Angular/jQuery 是否会继续执行 .then 函数中编码的指令,而让主线程中的指令等待?
非常感谢您的帮助!
预科
【问题讨论】:
-
"we answer no to rest call"是什么意思?还是单线程。当活动线程处理被清除时将处理响应
-
@charlietfl 我现在已经更新了我的问题,所以很清楚
-
还应该注意,这些都不是特定于角度的......这完全是关于浏览器处理 ajax (XmlHttpRequest) 请求,相对于大多数事件而言,这些请求可能需要一个永恒的时间
标签: angularjs xmlhttprequest angular-promise angular-http