var timeoutPromise = new Promise(function(resolve, reject){ setTimeout(function(){ var d = new Date(); var milis = d.getMilliseconds(); if(milis % 10 === 0){ reject("an error occured"); } else{ resolve(d); } }, 1000); }); timeoutPromise.then(function(data){ //onFulfilled console.log(data); }, function(err){ //onError console.log(err); }) timeoutPromise.then(function(data){ console.log(data); return "processed"; //returns next promise }, function(err){ console.log(err); }).then(function(data){ console.log(data); });
Promise'y można tworzyć z synchronicznych obiektów metodami Promise.resolve, np. Promise.resolve(13). Dodatkowo przydatne są metody all i race, które pozwalają obsługiwać wiele asynchronicznych operacji. Pierwsza z nich zwróci callback, kiedy wszystkie promise'y zostaną wykonane, druga w przypadku, gdy wykona się którykolwiek z nich.
var p1 = new Promise(function(resolve, reject){ setTimeout(function(){ resolve(); console.log("p1"); }, new Date().getMilliseconds()); }); var p2 = new Promise(function(resolve, reject){ setTimeout(function(){ resolve(); console.log("p2"); }, new Date().getMilliseconds()); }); Promise.all([p1, p2]).then(function(){ console.log("All done"); }); Promise.race([p1, p2]).then(function(){ console.log("First done"); });
Brak komentarzy:
Prześlij komentarz