Search code examples
javascriptwinjs

How to wait for result of two promises, then do something?


Well, subject. Can't figure out...

Condition: both promises start asynchronously and not one after another. Like this:

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

DoSomethingAfterBothPromises()

P. S. I use promises from WinJS, not the ES2015/ES2016, but they don't have big defferences.


Solution

  • Thanks @Evan Trimboli with .join! See in comment under topic. I went to this and found more beatiful solution here:

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