私はReactアプリケーションを構築していますが、私は1つ以上の関数を2回以上使用していることに気付きました。だから私はそれを抽出し、それの新しいクラスを作ることにしました。それは次のようになります。非同期リクエストをロードするための追加クラス
export default class Fetcher {
constructor(url, callback) {
this.url = url;
this.callback = callback;
}
getData() {
const url = '/wp-json/wp/v2/' + this.url;
const req = new XMLHttpRequest();
req.open('get', url, true);
req.onreadystatechange =() => {
if(req.readyState === 4) {
if(req.status === 200) {
this.callback();
return req.responseText;
} else {
throw new Error();
}
}
}
req.send();
}
}
そして、私はこのようにそれを使用しています:
import Fetcher from '../Tools/XML';
fetchPost() {
const data = new Fetcher('posts?slug='+this.props.params.slug, this.renderPost);
console.log(data.getData());
}
私の問題は、console.log
戻りundefined
です。私は、要求が非同期であり、レンダリングが完了してからクエリが完了できるので、これが起こることを理解しています。
私の質問は、これをどのように克服できますか?
素晴らしいです!ありがとう! –
@TomekBuszewski react.jsに精通していませんが、node.jsとAngularJSのために非同期JavaScriptに精通しています。 :) –