zoukankan      html  css  js  c++  java
  • $q服务

    q服务是AngularJS中自己封装实现的一种Promise实现。

    常用的几个方法:

    • defer() 创建一个deferred对象,这个对象可以执行几个常用的方法,比如resolve,reject,notify等,以及promise属性。
      • resolve(value) ——传入 value 解决派生的 promise。 如果 value 是一个通过 $q.reject 构造的拒绝对象(rejection) , 该promise 将被拒绝。
      • reject(reason) ——拒绝派生的promise,并提供原因 。 这相当于通过 $q.reject构造的拒绝对象(rejection)作为参数传递给 resolve。
      • notify(value)  ——在 promise 执行的过程中提供状态更新。 这在 promise 被解决或拒绝之前可能会被多次调用。
        属性promise —— 与延迟(deferred)相关联的 promise 对象。

      var defer1 = $q.defer();
      var promise1 = defer1.promise;
      promise1.then()
                .catch()
                    .finally(); 
      then...catch...finally可以想想成java里面的try...catch...finally。
    • all() 传入Promise的数组,批量执行,返回一个promise对象

      这个all()方法,可以把多个primise的数组合并成一个。当所有的promise执行成功后,会执行后面的回调。回调中的参数,是每个promise执行的结果。
      当批量的执行某些方法时,就可以使用这个方法。

                  var funcA = function(){
                      console.log("funcA");
                      return "hello,funA";
                  }
                  var funcB = function(){
                      console.log("funcB");
                      return "hello,funB";
                  }
                  $q.all([funcA(),funcB()])
                  .then(function(result){
                      console.log(result);
                  });

      执行的结果:

      funcA
      funcB
      Array [ "hello,funA", "hello,funB" ]
    • when() 传入一个不确定的参数,如果符合Promise标准,就返回一个promise对象。
    • 在Promise中,定义了三种状态:等待状态,完成状态,拒绝状态。 状态的变更是不可逆的,且等待状态可以变成完成或者拒绝。
  • 相关阅读:
    Let Us Adore 让我们来敬拜祂 中文歌词
    Way Maker 开路者 歌词
    Great Things 伟大的事 歌词
    永活盼望 Living Hope 歌词
    TP 控制器和模型里面order 写法不同
    服务器安全记录
    NOTIC: [8] Trying to get property of non-object
    Declaration of AdminControllerGameController::delete() should be compatible with。。
    vi编辑器操作 快捷键
    Camtasia如何录制小文件视频
  • 原文地址:https://www.cnblogs.com/yerikm/p/6667497.html
Copyright © 2011-2022 走看看