在 Array.prototype.map()
方法中调用服务器接口时,可以使用异步函数来处理。
示例:
async function fetchData() {try {const response = await fetch('https://api.example.com/data'); // 通过 fetch 发送请求const data = await response.json(); // 解析响应数据为 JSON 格式return data;} catch (error) {console.log('请求出错:', error);throw error;}
}async function processData() {const dataArray = [1, 2, 3, 4, 5];try {const processedArray = await Promise.all(dataArray.map(async (item) => {const data = await fetchData(); // 调用服务器接口获取数据// 处理数据逻辑const processedItem = item + data.value; // 这里假设从响应数据中获取 value 字段并与 item 相加return processedItem;}));console.log(processedArray); // 打印处理后的数组} catch (error) {// 处理错误console.log('处理数据时出错:', error);}
}processData(); // 调用 processData 函数开始处理数据
此示例中,使用 async/await
来处理异步操作。在 map()
方法的回调函数中使用 async
关键字声明为异步函数,然后可以在其中使用 await
来等待异步操作的结果,例如调用服务器接口并处理响应数据。
使用 Promise.all()
方法可以同时处理多个异步调用,并等待它们全部完成。通过 Promise.all()
来同时发送多个请求,并在所有请求完成后再处理数据。