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();