【发布时间】:2019-04-04 12:39:27
【问题描述】:
我有以下 2 个函数试图从我设置的快速服务器端点从 mongo 数据库中获取数据。此代码在我的 React 前端应用程序中。
export function getContacts() {
let data = fetch('/api/contacts').then((data) => {
return data.json();
}).catch(err => console.log(err));
return data;
}
以及以下调用它的人
const initialState = getContacts()
.then((body) => {
console.log('body: ');
console.log(body);
return body;
}).catch(err => console.log(err));
当我登录body 时,这是一个承诺。我期待来自数据库的 json 文档数组。我的 getContacts() 应该返回一个承诺,然后我在 initialState 中的回调从中获取数据。
【问题讨论】:
-
你得到一个
Promise因为fetch返回一个Promise- 但是,body 永远不应该是一个 Promise - 这很奇怪,你确定你已经编写了你真正的代码使用它?initialState将是一个承诺 - 但body在哪里你 console.log 它不会 -
@intA,正如您在评论部分下的 post 中提到的那样。似乎没有答案,因为您的后端服务器出现故障。请删除此问题以免污染 SO。谢谢!
标签: javascript reactjs express asynchronous promise