let error = true; function doAsyncTask() { return new Promise((resolve, reject) => { setTimeout(() => { if (error) { reject('error'); // pass values } else { resolve('done'); // pass values } }, 1000); }); } doAsyncTask().then( (val) => console.log(val), (err) => console.error(err) );
Nested Promise
this.localStorage.clear().toPromise() .then((value1: boolean) => { console.log(value1); return this.localStorage.setItem(value.userName, value.token).toPromise(); }) .then((value2: boolean) => { console.log(value2); });
References
https://codecraft.tv/courses/angular/es6-typescript/promises/
https://stackoverflow.com/questions/40519484/promise-waterfall