Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:链接两个承诺_Javascript_Es6 Promise - Fatal编程技术网

Javascript:链接两个承诺

Javascript:链接两个承诺,javascript,es6-promise,Javascript,Es6 Promise,在使用前一个名为promise的结果时,是否可以链接承诺?我希望避免像这样编写意大利面代码 getURL().then(function(a) { getURL().then(function(b) { var c = a + b; }); }); 我宁愿要这样的东西 var a = getURL(); a.then(function(b) { var c = a + b; }); 如何运行getURL()两次,然后根据promise 1和promi

在使用前一个名为promise的结果时,是否可以链接承诺?我希望避免像这样编写意大利面代码

getURL().then(function(a) {

    getURL().then(function(b) {
        var c = a + b;
    });
});
我宁愿要这样的东西

var a = getURL();
a.then(function(b) {
    var c = a + b;
});
如何运行getURL()两次,然后根据promise 1和promise 2的结果计算c。

promise.all

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

您在发布之前尝试过这个吗?是的,这是可能的,并且可能是最常见的用例。在您的第二个示例中,b是在a(在getURL中)中解析的结果。如何第二次运行getURL并使用其结果@也许是马特莫,老实说,我不知道你在问什么。您最初的问题是“
在使用前一个名为promise的结果时,是否可以链接承诺”
?答案是肯定的。在传递之前的结果时,您可以链接任意多个承诺。你的后续问题似乎并不针对承诺,如果没有更多的背景,很难提出一种方法。