Javascript 有棱角的承诺
我在用Angular和CoffeeScript。 我需要按顺序执行3个函数Javascript 有棱角的承诺,javascript,angularjs,coffeescript,promise,angular-promise,Javascript,Angularjs,Coffeescript,Promise,Angular Promise,我在用Angular和CoffeeScript。 我需要按顺序执行3个函数getSomeData1()、getSomeData2()、getSomeData3()。我有以下几点,效果很好 getSomeData1: -> @http.get("someRestUrl1") .success((data) => getSomeData2() getSomeData2: -> @ht
getSomeData1()、getSomeData2()、getSomeData3()
。我有以下几点,效果很好
getSomeData1: ->
@http.get("someRestUrl1")
.success((data) =>
getSomeData2()
getSomeData2: ->
@http.get("someRestUrl2")
.success((data) =>
getSomeData3()
getSomeData3: ->
@http.get("someRestUrl3")
我想把所有函数放在一个地方,让它更具可读性。大概
getSomeData1()
.then(getSomeData2())
.then(getSomeData3())
这将有助于轻松理解操作顺序
对此有何建议?我需要使用$q吗
对此有何建议
只需省略那些success
调用,直接从每个函数返回$http
承诺即可。不要忘记将回调传递给。然后()
,而不是函数调用
getSomeData1: ->
@http.get("someRestUrl1")
getSomeData2: ->
@http.get("someRestUrl2")
getSomeData3: ->
@http.get("someRestUrl3")
getSomeData1().then(getSomeData2).then(getSomeData3)
我是否需要使用$q
不,因为
$http
已经为您提供了。您只需兑现承诺。谢谢。是否可以将从第一个调用检索到的数据传递给第二个调用?是的,getSomeData2
将其作为参数接收。只需给回调函数一个参数:-)