gpt4 book ai didi

javascript - 如何在不执行其余代码的情况下接收 promise 的值?我得到[对象,对象]

转载 作者:行者123 更新时间:2023-12-02 22:24:33 28 4
gpt4 key购买 nike

这个函数应该返回“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,
}

怎样才能得到这个 promise 的结果呢?

最佳答案

首先,您需要添加括号才能实际调用该函数。然后您需要使用 await 调用该函数来实际等待返回值。由于您只能在 async 函数中使用 await,因此请为此目的声明一个。

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)具有传染性。如果您想使用结果,则必须支持调用堆栈中所有调用的异步性质。这些主题对此进行了很好的解释:

关于javascript - 如何在不执行其余代码的情况下接收 promise 的值?我得到[对象,对象],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59109007/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com