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

创建自己的angularjs $q承诺

发布时间:2020-12-17 17:53:27 所属栏目:安全 来源:网络整理
导读:此示例尝试使同步代码异步.我发现的所有例子都是相反的,除了docs. angularjs.org .. $q下面的主要第一个例子. 该文档列出了我试图使用的$q构造函数.不幸的是,jsfiddle Angular库1.1.1和1.2.1提供了一个$q对象(不是函数),如本例所示.相反,我将提供我的例子,并
此示例尝试使同步代码异步.我发现的所有例子都是相反的,除了docs. angularjs.org .. $q下面的主要第一个例子.

该文档列出了我试图使用的$q构造函数.不幸的是,jsfiddle Angular库1.1.1和1.2.1提供了一个$q对象(不是函数),如本例所示.相反,我将提供我的例子,并希望有人会看到这个错误.

https://docs.angularjs.org/api/ng/service/ $Q

我需要看到“这不会发生!”要执行的行.

f = function(name) {
    return $q(function(resolve,reject) {
        console.log "this does not happen!"
        resolve('great')
    });
}


f(name).then(function(result) {
  console.log 'result',result
},function(error) {
  console.log 'error',error
});

而不是记录“这不会发生!”接着是“很棒”,我实际上看到传递给$q的函数记录::

result function(resolve,reject) {
        console.log "this does not happen!"
        resolve('great')
    }

谁能看到我做错了什么?

解决方法

你没有做错任何事.我并不认为角度文档显示隐藏在其上方的此行的代码是合适的:

While the constructor-style use is supported,not all of the
supporting methods from ES6 Harmony promises are available yet.

正如你所看到的,它会引起很多混乱.

使用构造函数方法(如Zipper发布)

var dfd = $q.defer();

然后你可以做以下事情:

dfd.reject('some value');
dfd.resolve('some value');

(编辑:李大同)

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

    推荐文章
      热点阅读