首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular.js承诺

Angular.js承诺
EN

Stack Overflow用户
提问于 2015-05-25 13:11:27
回答 2查看 97关注 0票数 0

我对承诺感到困惑。我找到了下面的密码。承诺的好处是什么。我已经读到过关于承诺,它是用来避免回调地狱。承诺为提供更好的性能,还是仅仅用于以可读的格式编写代码

代码语言:javascript
复制
     var list = function (params) {
            if (!params) {
                params = {};
            }
            var deferred = $q.defer();
            if (params.q) {
                params.q = JSON.stringify(params.q);
            }

            $http.get(someurl, {params: params}).success(function  (data, status, headers) {
                deferred.resolve(data);
            }).error(function (data, status, headers) {
                    deferred.reject(data);
                });
            return deferred.promise;
        };
EN

回答 2

Stack Overflow用户

发布于 2015-05-25 13:22:31

Promises用作异步代码的句柄。稍后您可以使用它(作为变量名)检查成功与否。

医生说:

一个服务,它帮助您异步运行函数,并在它们完成处理时使用它们的返回值(或异常)。

另请阅读:

$http

$q

票数 0
EN

Stack Overflow用户

发布于 2015-05-25 13:24:09

承诺被用来使代码更具可读性、更好的组织(避免意大利面代码)和更灵活。

但是,这里的示例使用了一种名为"递延反模式“的错误技术。完成同样的事情的一个更好的方法是:

代码语言:javascript
复制
var list = function (params) {
    if (!params) {
        params = {};
    }
    if (params.q) {
        params.q = JSON.stringify(params.q);
    }

    return $http.get(someurl, {params: params}).then(function (result) {
        return result.data;
    });
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30439224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档