在调用异步函数时,我希望它返回一个 JSON 有效负载,以便我可以从对象中提取一个值。但是,该函数只返回[object Object]异步函数是在普通函数中调用的,所以我尝试将父函数更改为异步函数。这对我有帮助,因为最初我只获得了[object Promise]最初,我正在尝试这样做:const sendRequestToApprover = (userId, announcement, username) => { const { title, details, channel } = announcement; const channelName = channels.getChannelName(channel); console.log('channelName' + channelName);和getChannelName看起来像:async function getChannelName(id) { try { return await api.get('/channels.info', { params: { token: botToken, channel: id, } }); } catch (err) { console.log(err); }}我能够[object Promise]通过对以下内容进行更改来解决获取问题sendRequestToApprover:async function sendRequestToApprover(userId, announcement, username) { const { title, details, channel } = announcement; const channelName = await channels.getChannelName(channel); console.log('channelName' + channelName);请注意,它现在是一个异步函数,我添加await到函数调用中。我知道调用的有效载荷将返回以下内容:{ "ok": true, "channel": { "id": "CJSFDR83T", "name": "general",...}我不太明白为什么在这种情况下我无法得到这个名字。我已经在其他功能中完成了这个,这个让我很难过。channelName还在回来[object Object]。
3 回答
![?](http://img1.sycdn.imooc.com/56fb3e3d0001a10301000100-100-100.jpg)
一只甜甜圈
TA贡献1836条经验 获得超5个赞
当你这样做时:
console.log("channelName" + channelName);
您正在调用toString
方法 on channelName
,并且在一个对象上调用这会导致[object Object]
.
console.log("Object.toString() -> " + { foo: "bar" });
您可以通过向 传递另一个参数来避免这种情况console.log
。
console.log("Object.toString() -> ", { foo: "bar" });
添加回答
举报
0/150
提交
取消