所以,我有4項任務:getStatus()
,updateStatus(A)
,getTask()
,updateTask()
,應該以這種方式執行:如何使用promise來執行串行任務?
getStatus(function(status) {
// A
updateStatus(status, function(status) {
// B
getTask(function(task) {
// C
updateTask(task, function(task) {
// D
})
})
})
})
所以爲了避免回調地獄,我使用的承諾,現在所有這四個任務返回無極,然後我把它改成這樣
getStatus().then(function(status) {
// A
updateStatus(status).then(function(status) {
// B
getTask().then(function(task) {
// C
updateTask(task).then(function(task) {
//D
})
})
})
})
正如你所看到的,它仍然有then hell
,
難道我做錯了以P romise?
如何獲得地位'getStatus'在'D'回? – Sato
@Sato,這是額外的東西沒有問在問題中。提供了一系列解決方案[這裏](http://stackoverflow.com/questions/28250680/how-do-i-access-previous-promise-results-in-a-then-chain/)。你的嵌套方法可能是最好的解決方案。只記得添加一些回報。 –
@Sato只需在'D'中返回它,它就可以在下一個'.then(function(status){/ * status available here * /})' –