Angular 中的承诺
Promises in Angular
我正在使用 Angular 和 CoffeeScript。
我有 3 个函数 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 吗?
Any suggestions to achieve this?
只需省略那些 success
调用并直接 return 来自每个函数的 $http
承诺。并且不要忘记将 回调 传递给 .then()
,而不是函数调用。
getSomeData1: ->
@http.get("someRestUrl1")
getSomeData2: ->
@http.get("someRestUrl2")
getSomeData3: ->
@http.get("someRestUrl3")
getSomeData1().then(getSomeData2).then(getSomeData3)
Do I need to use $q
?
不,因为 $http
已经为您完成了。你可以消费承诺。
我正在使用 Angular 和 CoffeeScript。
我有 3 个函数 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 吗?
Any suggestions to achieve this?
只需省略那些 success
调用并直接 return 来自每个函数的 $http
承诺。并且不要忘记将 回调 传递给 .then()
,而不是函数调用。
getSomeData1: ->
@http.get("someRestUrl1")
getSomeData2: ->
@http.get("someRestUrl2")
getSomeData3: ->
@http.get("someRestUrl3")
getSomeData1().then(getSomeData2).then(getSomeData3)
Do I need to use
$q
?
不,因为 $http
已经为您完成了。你可以消费承诺。