gpt4 book ai didi

AngularJS - Promise 与 then?

转载 作者:行者123 更新时间:2023-12-03 06:45:54 25 4
gpt4 key购买 nike

我有 2 个问题 -

1) “成功”和“然后”有什么区别?示例 - $http.get(url).then 与 $http.get(url).success?

2) promise 意味着将来会执行的事情,很好。我无法理解这与函数调用有何不同。当我们使用“$q.defer.resolve()”进行调用时,将执行 Promise 调用。这不是函数调用吗?那么为什么这不能成为一个普通函数,并与任何其他函数调用(如 foo())一起执行呢?我错过了 promise 所做的特别的事情吗? ?

最佳答案

What is the difference between the "success" and "then"?

then() 采用单个参数:http 响应对象。 success() 有 4 个参数:响应数据、响应状态、响应 header 和 http 配置对象。因此,当您只关心返回的数据时,success() 更易于使用。正如 New Dev 所说,返回的值是不同的: then() 为其回调返回的任何内容返回一个新的 Promise,并允许您返回一个新值,从而构建一个 Promise 链,而 success() 返回原始的 Promise。

A promise means something that would be executed in the future

不,不是真的。 Promise 是您现在执行某件事的结果,但结果无法立即获得。由于 JavaScript 是单线程的,因此您不能只是阻塞并等待结果,因为这会完全卡住应用程序。因此,您只需注册一个回调函数,当结果可用时,该函数将被异步调用。例如:

$http.get('/some/url')

立即发送 HTTP 请求。但要获得结果,我们需要等待字节传输到服务器,等待服务器处理请求并发回响应,然后等待响应传输到浏览器。这可能需要几秒钟。所以 $http.get() 立即返回的是一个 promise :即代表 future 结果的对象(或者,一旦收到结果,就代表曾经是 future 的结果)。

关于AngularJS - Promise 与 then?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com