【发布时间】:2018-03-08 12:34:02
【问题描述】:
我刚开始使用 React,我惊讶地发现要真正做到最基本的事情是多么困难。我要做的就是提出请求并显示响应。这是我的代码:
import React from 'react';
import 'whatwg-fetch';
export default class App extends React.Component {
async testBackend() {
let response = await fetch('http://localhost:8000/test', { credentials: 'include' });
return response.json();
}
render() {
let status = await this.testBackend();
return (
<div style={{ textAlign: 'center' }}>
<h1>Hello World</h1>
<p>{status}</p>
</div>
);
}
}
我不能在 render() 中使用 await 而不让它异步,但我不能让它 aysnc 因为那样它会返回一个 Promise。我不能在 render() 中使用 then(),因为它也会返回一个 Promise。我无法将调用结果存储在 state 中,因为在调用 render() 时它不会存在。那我该怎么办??
为什么这么难?任何体面的语言都允许只是阻止 API 调用。
【问题讨论】:
-
等等,“任何体面的语言”都会在网络通话期间冻结用户界面?
标签: javascript reactjs async-await