コミットメントコード
14002 ワード
🦊 Promiseの作成
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('result');
}, 1000)
})
myPromise
.then(result => {
console.log(result)
})
.catch(e => {
console.error(e)
}
const myPromise = new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error());
}, 1000)
})
myPromise
.then(result => {
console.log(result)
})
.catch(e => {
console.error(e)
}
🦊 Promise(そして、catch)を使う
function increaseAndPrint(n) {
return new Promise((resolve, reject) => {
setTimeout(() => {
const value = n + 1;
if (value === 3) {
const error = new Error();
error.name = 'ValueIsFiveError';
reject(error);
return;
}
console.log(value);
resolve(value);
}, 1000)
})
}
increaseAndPrint(0)
.then(n => {
return increaseAndPrint(n);
}
)
.then(n => {
return increaseAndPrint(n);
}
)
.then(n => {
return increaseAndPrint(n);
}
)
.catch(e => {
console.error(e);
})
コンテキストが同じそして上の結果を自動的にパラメータとして入れます
function increaseAndPrint(n) {
return new Promise((resolve, reject) => {
setTimeout(() => {
const value = n + 1;
if (value === 3) {
const error = new Error();
error.name = 'ValueIsFiveError';
reject(error);
return;
}
console.log(value);
resolve(value);
}, 1000)
})
}
increaseAndPrint(0)
.then( increaseAndPrint)
.then( increaseAndPrint)
.then( increaseAndPrint)
.catch(e => {
console.error(e);
}
Reference
この問題について(コミットメントコード), 我々は、より多くの情報をここで見つけました https://velog.io/@taelee/promise-코드テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol