gpt4 book ai didi

javascript - angularJS 中 $q.when 和 $q.defer 的区别

转载 作者:搜寻专家 更新时间:2023-11-01 04:15:38 25 4
gpt4 key购买 nike

我看到 angularJS 文件在某些​​地方评论者评论了这 3 行:

var deferred = $q.defer();
deferred.resolve(BrandList);
return deferred.promise;

并替换为这个:

return $q.when(BrandList);

我想了解两者之间的区别。两者的目的相同吗?什么时候应该使用哪个?

最佳答案

Ben Nadal 很好地解释了这个 here .

用他的话说:

The $q.when() method doesn't just create a promise that is immediately resolved; rather, it normalizes a value that may or may not be a "thenable" object. If the given value is a promise, $q.when() will properly chain off of it. If the given value is not a promise, $q.when() will create promise resolved with the given value.

因此,从本质上讲,它接受 promise 或非 promise ,并使用一些魔法来确保它们已解决或 promise 包装,以免破坏 promise 链。

关于javascript - angularJS 中 $q.when 和 $q.defer 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31251679/

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