$ q.when在angularjs中的目的是什么?

时间:2015-07-27 18:55:06

标签: javascript angularjs promise

我已经在角色官方文档中阅读了$ q.when的文档,但我不明白$ q.when及其管理响应的方式的目的是什么。

1 个答案:

答案 0 :(得分:9)

$q.when接受承诺或普通价值并将其转换为承诺。如果它已经是一个承诺,它只是返回它。

如果您不知道您正在处理的对象是否是承诺,这将非常有用。例如,您可能有一个if / else语句,其中一个路径返回一个promise但另一个路径直接返回一个值。在这种情况下,最好使用$q.when来处理回报,以便从中获得价值,无论它是否是承诺。

例如:

function getData(){
    if(cachedData) return $q.when(cachedData); // converts to promise
    else return $http.get("/dataUrl"); // make HTTP request, returns promise
}