Javascript 如何等待两个承诺的结果,然后做点什么?

Javascript 如何等待两个承诺的结果,然后做点什么?,javascript,winjs,Javascript,Winjs,好吧,主题。不明白 条件:两个承诺都是异步启动的,不是。像这样: spashGoing.then(doSomethingForItself()); writingGoing.then(doSomethingForItself2()); DoSomethingAfterBothPromises() 另外,我使用WinJS的承诺,而不是ES2015/ES2016,但它们没有太大的差异。如果WinJS承诺是承诺/A+承诺 Promise.all([ spashGoing.then(doSo

好吧,主题。不明白

条件:两个承诺都是异步启动的,不是。像这样:

spashGoing.then(doSomethingForItself());
writingGoing.then(doSomethingForItself2());

DoSomethingAfterBothPromises()

另外,我使用WinJS的承诺,而不是ES2015/ES2016,但它们没有太大的差异。

如果WinJS承诺是承诺/A+承诺

Promise.all([
    spashGoing.then(doSomethingForItself), 
    writingGoing.then(doSomethingForItself2)
]).then(function(results) {
    // do things with results
});

嗯,回答得太早了-WinJS承诺是微软对待网络的“让我们做点不同的事情”态度的典型例子

谢谢@Evan Trimboli with
。加入
!请参见主题下的评论。我去了,找到了更美好的解决方案:


“WinJS”是否有一个
承诺。所有
-注意,你的代码看起来无论如何都是错误的,除非
doSomethingForItself
返回一个函数WinJS似乎没有一个
承诺。所有
,所以看看
加入
:@Evantimboli OK会发现它们没有太大的区别-我根本不会打赌。。。就像最近的jQuery“延迟”-它们99%按规范工作,但这1%会让你猜不透!啊哈,我同意!好吧,@Evantimboli在
方面帮了我很多。join
是的。join似乎是我的天啊,你为什么要那样做,我在和你说话Microsoft的答案
WinJS.Promise.join({ 
     p1: p1, 
     p2: p2, 
     m3: 3})
.then(function (args) {
    //args.p1 = null
    //args.p2 = promise with handle to file
    //args.m3 = 3
    console.log("Joined promise completed");
}, function (error) {
    console.log("Joined promise error '" + error + "' occured but was handled");
}).done();