2017-06-16 143 views
-1

在使用先前被調用的promise的結果時,是否可以鏈接promise?我想避免寫這樣的意大利麪代碼。Javascript:鏈接兩個承諾

getURL().then(function(a) { 

    getURL().then(function(b) { 
     var c = a + b; 
    }); 
}); 

我寧願想是這樣的

var a = getURL(); 
a.then(function(b) { 
    var c = a + b; 
}); 

我如何運行的getURL()兩次,然後有計算C依賴於承諾1的結果,並承諾2

+0

您是否在發佈之前嘗試過? –

+0

是的,這是可能的,也可能是最常見的用例。在你的第二個例子中,b是在(在getURL中)解決的結果。 – matmo

+0

我怎麼才能第二次運行getURL並使用它的結果呢? @matmo – Fullhdpixel

回答

1

Promise.all

Promise.all([Promise.resolve(1), Promise.resolve(2)]).then(([value1, value2]) => { 
    const c = value1 + value2; 
    ..... 
}); 
+0

感謝這個作品 – Fullhdpixel