リクエストにfetch APIを使用してサーバー上のデータを取得しようとしていますが、リクエストがFOREVERを処理しています(最終的に処理します)。 Reactをビューとして使用していて、Expressがページを表示しています。私はExpressとJSXのコードを以下に挙げました。なぜこれが起こっているのかについての洞察(「マウントされた」メッセージは、期待どおりに直ちにログに記録されますが、遅延後にAPIをフェッチします)?Fetch API Delay
エクスプレス:
app.use('/test',function(){
console.log('connected');
})
React.JS:それ以外のエンドポイントではないでしょう...
app.use('/test',function(request, response){
console.log('connected');
response.send(); //!!!!! this line
//Or: response.sendStatus(200); to send status code without body
});
:
componentDidMount(){
console.log('mounted');
fetch('./test').then(function(response){
console.log(response);
}).catch(function(error){
console.log(error);
})
}
ブラウザの開発者ツールでネットワークリクエストを確認しましたか?それはリクエストが遅いのか、間違った方法で結果を処理するのかを教えてくれます。 –
あなたはサーバからの応答を送信していないので、ブラウザは待機して待機し、最後にタイムアウトします。 'res.send(" hello ")'やそのような応答をすると、ブラウザーは非常に高速になります。 – jfriend00