2014-04-08 61 views
3

我有3個功能,我想要一個接一個地執行,只有當前一個功能已完成其任務。我使用When Promise庫爲此,回調金字塔,甚至當有諾言

function taskA(){ 
    var d = when.defer(); 
    d.resolve(); 
    return d.promise; 
} 
function taskB(){ 
    var d = when.defer(); 
    d.resolve(); 
    return d.promise; 
} 
function taskC(){ 
    var d = when.defer(); 
    d.resolve(); 
    return d.promise; 
} 

taskA().then(function(){ 
    taskB().then(function(){ 
     taskC().then(function(){ 
}); }); }); 

這是它應該如何?我的印象是,我可以很容易地避免使用承諾回調和它的「厄運金字塔」,或者我用他們錯了嗎?

回答

3

taskA() 
    .then(taskB) 
    .then(taskC) 
    .then(function(){}); 
+1

這是什麼,因爲承諾解開。當你從一個'.then'處理程序返回一個承諾時,它會一直等到這個承諾解決之後再進行分機。 –