基本的な質問ですが、これらの2つのスニペットに違いはありますか?プロミスチェーン - リファレンスvs
function test() {
var p2 = new Promise(function(resolve, reject) {
resolve(1);
});
p2 = p2.then(function(value) {
return new Promise(x=>{
window.setTimeout(()=>{
console.log("P finished");
x();}, 100);
});
});
if (condition) {
p2 = p2.then(function(value) {
return Promise.resolve(12);
});
}
p2 = p2.then(function(value) {
return new Promise(x=>{
window.setTimeout(()=>{
console.log("P3 finished");
x();
}, 1000);
});
});
return p2;
}
と
function test() {
var p2 = new Promise(function(resolve, reject) {
resolve(1);
});
p2.then(function(value) {
return new Promise(x=>{
window.setTimeout(()=>{
console.log("P finished");
x();}, 100);
});
});
if (condition) {
p2.then(function(value) {
return Promise.resolve(12);
});
}
p2.then(function(value) {
return new Promise(x=>{
window.setTimeout(()=>{
console.log("P3 finished");
x();
}, 1000);
});
});
return p2;
}
ポイントユースケースは、私は全体の約束チェーンを構成しています(それぞれの約束は、プロセス中に拒否される可能性があります)ので、私は思ったんだけどそれに基づいて、いくつかの条件を持っていますこれらの2つの方法が同等であれば?個人的には#1が正しいと感じますが、私は#2がより簡潔な構文の方が良いのが好きです。
実際に試しましたか? #2が意図したとおりに動作しないことはかなり明白です。 – Bergi
「1 + 2 + 3;」と「1 + 2」の違いはほぼ同じです。 1 + 3; – Bergi