$q.when在AngularJS中的作用是什么?

5

我已经阅读了 AngularJS 官方文档中关于 $q.when 的说明,但是还不太明白 $q.when 的目的和如何处理响应。


4
这个问题在 Stack Overflow 上已经被问了很多次,请阅读我们关于这个主题的众多问题,并在此之后编写一个不重复其他问题的问题,或编辑此问题以解释它如何不是一个重复的问题。请注意保持原意并使内容更加通俗易懂。 - George Stocker
1个回答

16

$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
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接