Skip to content

Instantly share code, notes, and snippets.

@nobeans
Created November 4, 2016 12:25
Show Gist options
  • Save nobeans/685dccf70b4ab53c6b9acb6d6237d9a2 to your computer and use it in GitHub Desktop.
Save nobeans/685dccf70b4ab53c6b9acb6d6237d9a2 to your computer and use it in GitHub Desktop.
const resolver = new Promise((resolve, reject) => {
console.log("resolve"); // この瞬間同期的に実行されている
resolve("resolved");
});
const rejector = new Promise((resolve, reject) => {
console.log("rejector"); // この瞬間同期的に実行されている
reject("rejected");
});
const catcher = (err) => (console.log(err))
//resolver.then(rejector).catch(catcher);
//
//resolver.then((a) => {
// return Promise.resolve(rejector);
//}).catch(catcher);
resolver
.then((a) => {
console.log(1, a);
return Promise.resolve(resolver);
})
.then((a) => {
console.log(2, a);
return Promise.resolve(rejector);
})
.catch((err) => {
console.log(3, err);
//return Promise.resolve("fixed");
return Promise.reject(err); // 後続での独自のリカバリ処理のためにrejectで返す
})
.then((a) => {
console.log(4, a);
return Promise.resolve(resolver);
})
.catch((err) => {
console.log(5, err);
})
;
//=>
// resolve
// rejector
// 1 'resolved'
// 2 'resolved'
// 3 'rejected'
// 5 'rejected'
//
// *** time: 0.182998 ***
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment