Angular JS $http 承诺对象 -- 它是如何工作的?

Angular JS $http promise object -- How does it work?

全部, 我是 Angular 框架的初学者,一直在阅读 $http 服务。我以为我理解 Angular JS 中的 Promise 对象,直到下面的问题出现在我的脑海中。你能帮我理解吗?

– 当我从 Angular 进行 REST 调用时,Angular 在执行调用 REST API 的 js 中的其他步骤之前不会进行其余调用.这是因为它是单线程的。好的,我明白了。那么它什么时候执行REST调用呢?可能是在当前JS中的所有指令都完成之后?如果是,

如果 $http 服务一看到它就异步执行 REST API,

非常感谢您的帮助!

普雷姆

When I make a REST call from Angular, Angular work not make the rest call before it executes the other steps in the js from where the REST API is invoked

没有。那是不正确的。它立即发送请求。但在响应返回之前它不会阻塞,因为这可能会花费大量时间并完全冻结应用程序。因此,它注册了一个回调,稍后当响应可用时将调用此回调。这就是异步的原理。

Who spawns the second thread to execute the REST API

没有第二个线程。

查看它的最简单方法是将 HTTP 响应视为一个事件,就像单击或按键一样。唯一线程所做的就是等待下一个事件并在循环中对其做出反应。

首先,它不会阻塞执行,它会立即发送请求。基本上它遵循使用回调函数概念的承诺模式。因此,每当 API return 响应时,它都会调用回调函数并恢复进程。

没有第二个线程这样的概念。当 HTTP return 响应时,执行不会停止。它只是调用它的回调方法,然后执行剩余的代码行