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中,定义了三种状态:等待状态,完成状态,拒绝状态。 状态的变更是不可逆的,且等待状态可以变成完成或者拒绝。
  • 相关阅读:
    QT 捕获事件(全局拦截)
    QT语言翻译
    QT,QLabel添加超链接
    解决VS+Qt不生成moc文件问题
    c++编译错误:invalid new-expression of abstract class type
    C++ 异常处理
    MATLAB 随机生成互不重叠的多个矩形
    sequential minimal optimization,SMO for SVM, (MATLAB code)
    How to decide on the correct number of clusters?
    python 将数据随机分为训练集和测试集
  • 原文地址:https://www.cnblogs.com/yerikm/p/6667497.html
Copyright © 2011-2022 走看看