剛學javascript不久,有一個基于回呼風格的呼叫,想把他轉為基于Promise風格的
funA(res =>{
if (res)
funIf({()=> {
console.log('in if callback');
})
else
funElse(() => {
console.log('in else callback');
})
});
我是這么轉的(假設有同名的promise風格的方法):
funA().then(res => {
if (res)
return funIf(); //if分支的Promise
else
return funElse(); //else分支的Promise
}).then(() => {
//這里我怎么知道是哪個分支過來的?
console.log('in if or else?');
});
我想問的是,我在后面的then里,如何能知道,這個到底前面then里面的哪個分支?
或者說,我不應該采用這種模式?
uj5u.com熱心網友回復:
funA().then(res => {
if (res)
return funIf(); //if分支的Promise
else
return funElse(); //else分支的Promise
}).then((previousReturn) => { // <======
//這里我怎么知道是哪個分支過來的?
console.log('in if or else?', previousReturn); // 上個 then return 的值會在下個 then 里獲取到,可以根據這個來判斷
});
uj5u.com熱心網友回復:
真要有這種需求,最簡單的就是在你上面的return if or else時,額外定義或附加一個狀態標識。轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/200551.html
標籤:JavaScript
