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中的所有指令都完成之后?如果是,
- 为什么我们甚至称它为异步?
- 其次,在它执行 REST API 期间(假设 REST API 在 2 秒之前产生输出),在它调用 REST API 之后Angular什么都不做就等2秒?
如果 $http 服务一看到它就异步执行 REST API,
- 谁生成第二个线程来执行 REST API?框架?如果是这样,那么他们是否让 Javascript 不再是单线程的?
- 其次,当服务 returns 而主线程甚至还没有执行完我的 js 中的所有行时, Angular/jQuery 是否去执行 .then 函数中编码的指令,离开主线程中的指令等待?
非常感谢您的帮助!
普雷姆
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 响应时,执行不会停止。它只是调用它的回调方法,然后执行剩余的代码行
全部, 我是 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 不再是单线程的?
- 其次,当服务 returns 而主线程甚至还没有执行完我的 js 中的所有行时, Angular/jQuery 是否去执行 .then 函数中编码的指令,离开主线程中的指令等待?
非常感谢您的帮助!
普雷姆
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 响应时,执行不会停止。它只是调用它的回调方法,然后执行剩余的代码行