我已经阅读了 AngularJS 官方文档中关于 $q.when 的说明,但是还不太明白 $q.when 的目的和如何处理响应。
我已经阅读了 AngularJS 官方文档中关于 $q.when 的说明,但是还不太明白 $q.when 的目的和如何处理响应。
$q.when
接受一个Promise对象或普通值,并将其转换为Promise对象。如果它已经是一个Promise对象,则直接返回它。
如果您不知道正在处理的对象是否为Promise对象,则该函数非常有用。例如,您可能有一个if/else语句,在其中一个路径返回一个Promise对象,但另一个路径直接返回一个值。在这种情况下,最好使用$q.when
来处理返回值,以便无论它是Promise对象还是其他类型的值,都能获取到一个值。
例如:
function getData(){
if(cachedData) return $q.when(cachedData); // converts to promise
else return $http.get("/dataUrl"); // make HTTP request, returns promise
}