在 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()
来同时发送多个请求,并在所有请求完成后再处理数据。