【发布时间】:2021-04-03 07:26:00
【问题描述】:
在尝试解决我的承诺时,我收到错误消息“对象作为 React 子项无效(找到:[object Promise])。”
在 GetCardsFromBoard() 中我的 API 请求之后的 console.log 中,typeOf() 我的响应是字符串,它将数据打印到控制台。但是在 TrelloTester() 中,控制台显示我的响应仍然是 Promise<pending>,我得到了错误。
我尝试了很多配置,但我无法得到解决的承诺,感谢您的帮助!
const fetch = require('node-fetch');
export async function GetCardsFromBoard(board) {
let cards = await fetch(
baseURL+'boards/'+board+'/cards?key='+key+'&token='+token,
{
method: 'GET',
headers: {
'Accept': 'application/json'
}
})
.then(response => {return response.text()})
.catch(err => console.error(err));
console.log(typeof(cards), cards); //prints "string" type and then the entire json response
return cards;
}
export function TrelloTester() {
let bodyStr = GetCardsFromBoard(boardID);
console.log("resp: ", bodyStr); //shows Promise<pending>, but with the correct response value inside
return (
<BigCard header=" " body={bodyStr}/>
);
}
export default TrelloTester;
【问题讨论】:
-
GetCardsFromBoard返回一个 Promise。 async/await 只是 Promise 之上的糖,实际上并没有使代码的异步性降低。因此,您的TrelloTester组件仍然必须将该函数视为 Promise。
标签: javascript node.js reactjs rest node-fetch