gpt4 book ai didi

javascript - 如何从 Javascript 中的另一个函数访问对象

转载 作者:搜寻专家 更新时间:2023-11-01 00:48:17 24 4
gpt4 key购买 nike

我试图从一个数组中获取一些数据并将其存储在一个对象中,但我总是得到一个空对象或 Promise { <pending> }在日志中。我正在使用 global变量来存储它并在另一个函数中访问它。不确定我做错了什么。

var messageData = {};

const getNotifications = async () => {
let fcmObjects = await fcmTokens();
fcmObjects.forEach( (notificationData) => {
messageData = notificationData;
});
};

function getMessageData() {
console.log(messageData);
}

getMessageData();

getNotifications().then(function () {
console.log('All Done');
}).catch(function (error) {
console.log('Oops', error);
});

最佳答案

控制台日志发生在异步方法/Promise 被解析之前。你应该在那之后才检查它。换句话说,您的代码应该类似于:

getNotifications().then(function () {
getMessageData();
console.log('All Done');
}).catch(function (error) {
console.log('Oops', error);
});

如果您不想在 getNotifications() 中调用它,只需获取它返回的 Promise 并在 .then() 中执行您的调用(选项 1)或执行 await(选项 2)。在代码中:

const notificationPromise = getNotifications();
// option 1
notificationPromise.then(getMessageData);
// option 2
await notificationPromise;
getMessageData();

了解更多信息的链接 https://javascript.info/async关于这个话题。

关于javascript - 如何从 Javascript 中的另一个函数访问对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55904201/

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