所以,我有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 * /})' –