Angular Promises 有回调

Angular Promises with callbacks

我有以下3个函数需要顺序执行:

getSomeData1: ->
    @http.get("someRestUrl1")
getSomeData2: (param1, param2)->
    @http.get("someRestUrl2")
getSomeData3: ->
    @http.get("someRestUrl3")

getSomeData1().then(getSomeData2(param1, param2)).then(getSomeData3)

现在,如果我想在调用函数 getSomeData2 之前将回调附加到函数 getSomeData1,最好的方法是什么?

新回调不包含任何 $http 请求。这是一个正常的 javascript 函数。

我不是 coffeescript 专家,但在正常情况下 javascript,您可以做一些简单的事情,只需创建一个匿名函数,该函数将首先调用您的回调,然后检索 SomeData2:

getSomeData1: ->
    @http.get("someRestUrl1")
getSomeData2: ->
    @http.get("someRestUrl2")
getSomeData3: ->
    @http.get("someRestUrl3")

getSomeData1().then(function(){
    normalJsFunction();
   getSomeData2
}).then(getSomeData3)

您可以 return 一个承诺,该承诺解析为回调中应在 getSomeData2 之前调用的值。我不知道 CoffeeScript,我假设 $q 服务可用:

getSomeData1: ->
    @http.get("someRestUrl1")
getSomeData2: (param1, param2)->
    @http.get("someRestUrl2")
getSomeData3: ->
    @http.get("someRestUrl3")

function callback(data) {
    return $q.when(callbackReturnValue) 
}

getSomeData1().then(callback).then(getSomeData2(param1, param2)).then(getSomeData3)