javascript - Run 2 promises and wait for both for "done()" -
i'm trying run 2 different functions using promises (with q.js) @ same time, , wait response of both run third action.
i this:
run( promise1, promise2).done( callbackforboth );
how can do?
you can use q.all
function, this
q.all([promise1, promise2]).then(callbackforboth);
normally, q.all
followed .spread
convenience method, spreads result q.all
call, function parameters, this
q.all([promise1, promise2]).spread(function(pro1result, pro2result) { return callbackforboth(); });
but problem method is, if of promises rejected, rest of promises not invoked.
so, if want make sure promises either fulfilled/rejected, can use q.allsettled
in case
q.allsettled([promise1, promise2]).then(callbackforboth);
here can use spread
convenience method, little more granularity. each promise, object, has state
attribute let subsequent consumers know if promise fulfilled or rejected. so, might want use spread this
q.allsettled([promise1, promise2]).spread(function(pro1result, pro2result) { if (pro1result.state === "fulfilled" && pro2result.state === "fulfilled") { return callbackforboth(); } else { throw new error("not of them successful"); } });
Comments
Post a Comment