callbackを Promise に変換することでcallbackの深いネストを消すことができます。
Promiseのコンストラクタには resolve と reject を引数に持つ関数を渡します。
callback内の処理が成功した時には resolve に、失敗した時には reject に値を渡します。
次のコードは100ミリ秒時間を置いてから、 resolve にメッセージを渡しています。
resolve に渡したメッセージは次の then の処理で表示しています。
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Hello');
}, 100);
});
promise
.then((message) => {
console.log(message);
});
また次のコードは100ミリ秒時間を置いてから、 reject にメッセージを渡しています。
reject に渡したメッセージは次の catch の処理で表示しています。
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
reject('Hello');
}, 100);
});
promise
.catch((message) => {
console.log(message);
});