私は3つの約束を一緒にしたいが、resolve
とreject
の機能については何も分からない。最初の場合、コードはDo Work 2
とDo Work 3
に着くのはなぜネイティブJavascriptで約束をまとめる
Do Work 1
Do Work 2
Do Work 3
ERR 1
:ある私の出力で
function testP(num) {
return new Promise((resolve, reject) => {
console.log('Do Work', num);
reject(num);
});
}
function testPromises() {
return new Promise((resolve, reject) => {
testP(1)
.then(testP(2))
.then(testP(3))
.then(resolve)
.catch(reject);
});
};
const theTest = testPromises().then(()=>{
console.log("all done");
}).catch(err => {
console.log("ERR", err);
});
そして、何私が見ている:私は質問をするために自分のコードを簡素化しましたすぐにreject
ヒットを約束しますか?私の理解は、実行する前にthen
関数が約束を約束するまでresolve
またはreject
を待つことでした。あなたは
.then(testP(2))
を行う際ため
BTW '戻り新しいプロミス((決意、リジェクト)=> {なめらか( )。その後(smth2)。その後(解決)。キャッチ(拒否); }) 'は反パターンです。 'return smth()、then(smth2);'を使うほうがずっと良いです。 –