在以下 Angular Material 代码中了解此延迟语法及其用途
Understanding this deferred syntax and its purpose in the below Angular Material code
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;
}
}
具体来说,, deferred
部分在var results = query ? self.states.filter( createFilterFor(query) ) : self.states, deferred;
中的作用是什么?此时 deferred
对象甚至还没有被 $q.defer();
定义。
它是一个 var
declaration,具有 results
变量的巨大初始化程序,而 deferred
变量没有初始化程序。
同样可以这样写
var results = query ? self.states.filter( createFilterFor(query) ) : self.states;
var deferred;
或
var results, deferred;
results = query ? self.states.filter( createFilterFor(query) ) : self.states;
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;
}
}
具体来说,, deferred
部分在var results = query ? self.states.filter( createFilterFor(query) ) : self.states, deferred;
中的作用是什么?此时 deferred
对象甚至还没有被 $q.defer();
定义。
它是一个 var
declaration,具有 results
变量的巨大初始化程序,而 deferred
变量没有初始化程序。
同样可以这样写
var results = query ? self.states.filter( createFilterFor(query) ) : self.states;
var deferred;
或
var results, deferred;
results = query ? self.states.filter( createFilterFor(query) ) : self.states;