Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要AngularJS/Javascript三值运算符代码解释_Javascript_Angularjs_Angular Material_Ternary Operator_Deferred - Fatal编程技术网

需要AngularJS/Javascript三值运算符代码解释

需要AngularJS/Javascript三值运算符代码解释,javascript,angularjs,angular-material,ternary-operator,deferred,Javascript,Angularjs,Angular Material,Ternary Operator,Deferred,我在Angular Material网站上看到了以下代码: function querySearch (query) { var results = query ? self.states.filter( createFilterFor(query) ) : self.states, deferred; if (self.simulateQuery) { deferred = $q.defer(); $timeout(f

我在Angular Material网站上看到了以下代码:

function querySearch (query) {
      var results = query ? self.states.filter( createFilterFor(query) ) : self.states,
          deferred;
      if (self.simulateQuery) {
        deferred = $q.defer();
        $timeout(function () { deferred.resolve( results ); }, Math.random() * 1000, false);
        return deferred.promise;
      } else {
        return results;
      }
    }
有人能解释一下这里发生了什么吗

如果查询不为null,我们将调用过滤器,否则我们将返回状态,这是什么

延迟尚未创建,我们也不能返回多个值

那么这段代码的解释是什么呢

代码如下:
第一个(基本用法)

这就是为什么三元组不利于可读性。逗号与三元无关,因为它附加在变量声明上

所有这些操作都是声明(未定义的)变量
deferred

可以使用逗号语法一次声明多个变量,如下所示:

var x = 4,
    y = 7,
    z = Math.random();

欢迎来到职业安全的世界,编写如此糟糕和复杂的代码,他们别无选择,只能留住你!我们如何有时返回实际结果,有时返回承诺?我们怎样才能在呼叫端区分结果?你不应该强迫自己进入那种情况。由于一个好的结果就是一个承诺,您应该让您的else返回一个
拒绝
ed承诺值,这样无论发生什么情况,结果都可以是
然后
'd,并且不会在您的返回值上创建一个奇怪的范围感谢您的澄清。