基本問題,但這兩個片段之間有區別嗎?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