ES6は非同期リクエストをどのように処理しますか?
ES6では、非同期リクエストを処理するためにPromiseオブジェクトを使用することができます。Promiseは非同期操作を表すオブジェクトであり、非同期操作の結果を取得するために使用できます。
以下は、非同期リクエストを処理するPromiseの例です。
function getData() {
return new Promise((resolve, reject) => {
// 异步请求代码
setTimeout(() => {
const data = '这是异步请求的数据';
if (data) {
resolve(data); // 异步请求成功,将数据传递给resolve函数
} else {
reject('请求失败'); // 异步请求失败,将错误信息传递给reject函数
}
}, 2000);
});
}
// 调用异步请求函数
getData()
.then(data => {
console.log('异步请求成功:', data);
})
.catch(error => {
console.error('异步请求失败:', error);
});
上記の例では、getData関数はPromiseオブジェクトを返し、そのオブジェクトのコンストラクタで非同期リクエストコードを実行します。非同期リクエストが成功すると、resolve関数を呼び出してデータを渡し、失敗するとreject関数を呼び出してエラー情報を渡します。
then()メソッドを使用することで、非同期リクエストの成功時の処理関数を登録することができます。また、catch()メソッドを使用することで、非同期リクエストの失敗時の処理関数を登録することができます。
上記の例では、非同期リクエストはsetTimeout関数を使って模擬されていますが、実際にはXMLHttpRequestオブジェクト、Fetch API、またはAxiosなどのライブラリを使用してリアルな非同期リクエストを行うことができます。