javascript - 如何在不执行其余代码的情况下接收 Promise 的值?我得到 [objetc,object]
问题描述
这个函数应该返回“HomeStack”
const getSessionPrevious = async () => {
try {
const value = await AsyncStorage.getItem("token"); //value default is "#$#"%2356"
if (value !== null) {
return "HomeStack";
} else {
return "LoginStack";
}
} catch (error) {
return "LoginStack";
}
};
console.log(getSessionPrevious() ); //I need get the value of the function in this line
.
.
.
rest of my code
当我做:
console.log(getSessionPrevious );
返回:
Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
}
怎么能得到这个承诺的结果?
解决方案
首先,您需要添加括号才能实际调用该函数。然后你需要调用函数await
来实际等待返回值。由于您只能await
在async
函数中使用,因此为此目的声明一个。
async function Demo()
{
console.log(await getSessionPrevious());
}
Demo();
// Code here will be executed before Demo() is actually executed because we are not awaiting it.
请注意,添加异步代码(如 async/await 或使用纯 Promise)具有传染性。如果要使用结果,则必须在调用堆栈中支持调用的异步性质。这在这些主题中得到了很好的解释:
推荐阅读
- css - 如何列出一系列包含相同属性的类并为每个类分配不同的 z-index
- css - 使用 Material UI 持久抽屉正确推送画布
- python - 计算列值的 Django-tables2 页脚总和
- wordpress - 如何修复 WordPress 多站点网络上的内部服务器错误?
- r - 在 R data.table 中使用 .() group by 时如何更改目标列的类型
- c# - C# UWP 页面无法看到用户控件
- reactjs - 有没有办法使用 JW Player 设置请求标头
- java - 导航抽屉未成功创建
- git - 无法连接到存储库:执行命令时出错:git ls-remote -h git@gitlab.com
- google-apps-script - 如何在文档中的特定位置插入?(在文本项内?)