我嘗試使用回調答應refacter代碼,但我得到了來自無極(藍鳥)一些奇怪的行爲如果其他人在無極
這裏是主要的邏輯
function func1(callback) {
func2()
.then(function(resultFromFunc2) {
if (resultFromFunc2 === true) {
callback(null, resultFromFunc2)
} else {
return func3()
}
})
.then(function(resultFromFunc3) {
console.log('Func 3', resultFromFunc3)
callback(null, resultFromFunc3)
})
.catch(function(err) {
console.log('error', err)
})
}
func1(function(err, result) {
console.log('func1', err, result);
})
和func2
和func3
是隻是一個簡單的解決
function func2() {
return new Promise((resolve, reject) => {
resolve(true)
});
}
function func3() {
return new Promise((resolve, reject) => {
resolve(true)
});
}
如果func2
決心true
代碼應停止在第一個運行,那麼,但我發現第二個然後叫
這裏是從終端的結果。
func1 null true
Func 3 undefined
func1 null undefined
我怎麼能停止調用第二那麼當func2
是解決true
@JaromandaX對不起,我不明白你的意思你的代碼依然採用了回調 –
- 什麼是你正在試圖重構原始代碼? –
你到底在做什麼?應該叫什麼? – paqash