创建自己的angularjs $q承诺

前端之家收集整理的这篇文章主要介绍了创建自己的angularjs $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@H_403_37@ supporting methods from ES6 Harmony promises are available yet.

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

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

var dfd = $q.defer();

然后你可以做以下事情:

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

猜你在找的Angularjs相关文章