基本问题,但这两个片段之间有区别吗?Promise chain - reference 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;
}
点的使用情况是,我有一些条件在此基础上,我撰写了整个承诺链(每个可能的承诺的过程中被拒绝),所以我想知道如果这两种方式是相同的?我个人觉得#1是正确的,但为了更简洁的语法,我更喜欢#2。
你有没有真正尝试过吗?应该很明显,#2不能按预期工作。 – Bergi
这是关于相同的差为'1之间+ 2 + 3;和''2 1 +; 1 + 3;'。 – Bergi