加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – $q.defer()真的有用吗?

发布时间:2020-12-17 18:03:36 所属栏目:安全 来源:网络整理
导读:我正在学习Angular JS,目前我正在尝试理解promises和异步编程,我对$q.defer()有疑问.我的观点如下:通常当人们使用承诺时,他们会做类似的事情,考虑到$q已经可用 function someAsyncFunction() { var deferred = $q.defer(); /* Do things and if everything
我正在学习Angular JS,目前我正在尝试理解promises和异步编程,我对$q.defer()有疑问.我的观点如下:通常当人们使用承诺时,他们会做类似的事情,考虑到$q已经可用

function someAsyncFunction() {
    var deferred = $q.defer();

    /* Do things and if everything goes fine return deferred.resolve(result) 
       otherwise returns deferred.reject()
     */

    return deferred.promise;
}

这到底是做什么的?当我们执行var deferred = $q.defer()时,它会立即将该函数的所有执行切换到另一个线程,并返回promise作为对此操作结果的引用,该操作仍然在那里执行?

这是我们在创建异步方法时应该考虑的方式吗?

解决方法

Angular的$q服务基于Javascript库Q.您可以在 Q documentation中阅读更多相关内容,或阅读 github repo中的代码.我认为这部分文章的介绍中最好的解释了它:

If a function cannot return a value or throw an exception without blocking,it can return a promise instead. A promise is an object that represents the return value or the thrown exception that the function may eventually provide. A promise can also be used as a proxy for a remote object to overcome latency.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读