2017-06-16 108 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