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