簡體   English   中英

承諾值未返回,但如果我執行console.log(),它將輸出值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM