我使用async / await:
获取此代码function _getSSID(){
return new Promise((resolve, reject)=>{
NetworkInfo.getSSID(ssid => resolve(ssid))
})
}
async function getSSID(){
let mySSID = await _getSSID()
if (mySSID == "error") {
return 'The value I want to return'
}
}
看起来getSSID()
函数将始终返回一个承诺。如何以纯文本格式获取"The value I want to return"
?
非常感谢任何帮助。
答案 0 :(得分:4)
声明一个函数async
意味着它将返回Promise
。要将Promise
转换为值,您有两种选择。
"正常"选项是在其上使用then()
:
getSSID().then(value => console.log(value));
您还可以在功能上使用await
:
const value = await getSSID();
使用await
的问题是它在async
函数内部太多了。
在某些时候,你会在顶级有一些东西,它可以使用第一个选项,也可以是这样的自我调用函数:
((async () => {
const value = await getSSID();
console.log(value);
})()).catch(console.error):
如果你这样做,请务必在该函数上使用catch()
来捕获任何未被捕获的异常。
您无法在顶层使用await
。