[英]Promise value not getting returned but if I do console.log() it prints the value
這是我的函數,它返回一個包含按鈕文本值的promise
getToggleViewButtonText(){
return this.toggleBasicOrAdvancedView.getText()
}
現在,我編寫了另一個函數,該函數將其他函數作為參數並解析了promise並返回其值。
promiseResolve(func){
return func.then(value=>{
return value
});
問題是當我使用這個
promiseResolve(this.getToggleViewButtonText())
我得到的是Promise而不是按鈕元素的文本值。但是,如果我在promiseResolve函數中執行console.log(value)。 我可以看到值在那里。 能為我在這里出問題的地方提供一些幫助。
Promise.then()返回承諾本身。 承諾的重點是您不知道何時才能解決。 因此,您只能使用異步方法獲取其結果。
this.getToggleViewButtonText().then(value => {
// Do something with the value here
});
如果要求在下一行獲取代碼中的Promise
值,則可以使用async/await
function getToggleViewButtonText() { return Promise.resolve(1) } async function promiseResolve(func) { let value = await func; if (value > 1) { return value } else { return value + " is not greater than 1" } } promiseResolve(getToggleViewButtonText()).then(data => console.log(data))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.