全部, 我是Angular框架的初学者,并且一直在阅读$ http服务。我以为我理解了Angular JS中的Promise对象,直到下面的问题出现在我脑海中。你能帮我理解一下吗?
- 当我从Angular进行REST调用时,Angular工作在执行调用REST API的js中的其他步骤之前不会进行其余调用。这是因为它是单线程的。好的,我明白了。那么它何时执行REST调用?可能是在当前JS完成所有指令之后?如果是的话,
如果$ http服务一看到它就会异步执行REST API,
非常感谢你的帮助!
炳廷
答案 0 :(得分:1)
当我从Angular进行REST调用时,Angular工作在执行调用REST API的js中的其他步骤之前不进行其余调用
没有。那是不对的。它立即发送请求。但它不会阻止,直到响应回来,因为这可能需要花费大量时间并完全冻结应用程序。因此,它会注册一个回调,稍后当响应可用时,将调用此回调。这就是异步的原则。
谁产生第二个线程来执行REST API
没有第二个帖子。
最简单的方法是考虑HTTP响应是一个事件,就像点击或按键一样。所有唯一的线程都是等待下一个事件并在循环中对它作出反应。
答案 1 :(得分:0)
首先,它不会阻止执行,它会立即发送请求。基本上它遵循使用回调函数概念的promise模式。因此,只要API返回响应,它就会调用回调函数并恢复该过程。
没有像第二线程这样的概念。当HTTP返回响应时,执行不会停止。它只是调用它的回调方法,然后执行剩余的代码行