json文件通过await import导入解析

// 保存上一次加载的 features,便于移除
let previousFeatures = [];
// 用于缓存已经加载过的 GeoJSON 数据
let geoJsonCache = {};

// 定义动态导入函数
const importJson = async (url) => {
  if (geoJsonCache[url]) {
    return geoJsonCache[url];
  }
  console.log(url);
  console.log(typeof url);
  const data = await import("@/static/区县边界/成县.json");
  // const data1 = await import(`${url}`);
  console.log(data);
  // console.log(data1);
  geoJsonCache[url] = data.default || data; // 有些模块工具需要 `.default`
  return geoJsonCache[url];
};

// 加载 GeoJSON 或 JSON 文件的函数
const loadGeoJsonOrJsonFile = async (vectorSource, zoom) => {
  // 首先移除上次加载的所有 features
  previousFeatures.forEach((feature) => {
    vectorSource.removeFeature(feature);
  });
  previousFeatures = []; // 清空上次加载的 features

  let geoJsonUrls = [];
  if (zoom > 1.6) {
    geoJsonUrls = [
      "@/static/62/621202109.json",
      "@/static/62/621202110.json",
      "@/static/62/621202113.json",
      "@/static/62/621202116.json",
      "@/static/62/621202122.json",
      "@/static/62/621202123.json",
      "@/static/62/621202211.json",
      "@/static/62/621221100.json",
      "@/static/62/621221101.json",
      "@/static/62/621221102.json",
      "@/static/62/621221103.json",
      "@/static/62/621221104.json",
      "@/static/62/621221105.json",
      "@/static/62/621221106.json",
      "@/static/62/621221107.json",
      "@/static/62/621221108.json",
      "@/static/62/621221109.json",
      "@/static/62/621221110.json",
      "@/static/62/621221111.json",
      "@/static/62/621221112.json",
      "@/static/62/621221203.json",
      "@/static/62/621221206.json",
      "@/static/62/621223100.json",
      "@/static/62/621223101.json",
      "@/static/62/621223102.json",
      "@/static/62/621223103.json",
      "@/static/62/621223106.json",
      "@/static/62/621223107.json",
      "@/static/62/621223108.json",
      "@/static/62/621223206.json",
      "@/static/62/621223207.json",
      "@/static/62/621223209.json",
      "@/static/62/621223211.json",
      "@/static/62/621223212.json",
      "@/static/62/621223213.json",
      "@/static/62/621223214.json",
      "@/static/62/621223215.json",
      "@/static/62/621223216.json",
      "@/static/62/621223217.json",
      "@/static/62/621223218.json",
      "@/static/62/621223219.json",
      "@/static/62/621223224.json",
      "@/static/62/621224100.json",
      "@/static/62/621224102.json",
      "@/static/62/621224103.json",
      "@/static/62/621224105.json",
      "@/static/62/621224108.json",
      "@/static/62/621224110.json",
      "@/static/62/621224112.json",
      "@/static/62/621224113.json",
      "@/static/62/621224209.json",
      "@/static/62/621225100.json",
      "@/static/62/621225101.json",
      "@/static/62/621225102.json",
      "@/static/62/621225103.json",
      "@/static/62/621225104.json",
      "@/static/62/621225105.json",
      "@/static/62/621225106.json",
      "@/static/62/621225108.json",
      "@/static/62/621225109.json",
      "@/static/62/621225110.json",
      "@/static/62/621225111.json",
      "@/static/62/621225112.json",
      "@/static/62/621225113.json",
      "@/static/62/621225114.json",
      "@/static/62/621225206.json",
      "@/static/62/621225208.json",
      "@/static/62/621225210.json",
      "@/static/62/621225300.json",
      "@/static/62/621225301.json",
      "@/static/62/621225302.json",
      "@/static/62/621225304.json",
      "@/static/62/621225305.json",
      "@/static/62/621225306.json",
      "@/static/62/621226100.json",
      "@/static/62/621226101.json",
      "@/static/62/621226102.json",
      "@/static/62/621226103.json",
      "@/static/62/621226104.json",
      "@/static/62/621226105.json",
      "@/static/62/621226106.json",
      "@/static/62/621226107.json",
      "@/static/62/621226108.json",
      "@/static/62/621226109.json",
      "@/static/62/621226110.json",
      "@/static/62/621226111.json",
      "@/static/62/621226112.json",
      "@/static/62/621226113.json",
      "@/static/62/621226114.json",
      "@/static/62/621226115.json",
      "@/static/62/621226116.json",
      "@/static/62/621226117.json",
      "@/static/62/621226118.json",
      "@/static/62/621226119.json",
      "@/static/62/621226120.json",
      "@/static/62/621226121.json",
      "@/static/62/621226203.json",
      "@/static/62/621226215.json",
      "@/static/62/621226219.json",
      "@/static/62/621226224.json",
      "@/static/62/621226228.json",
      "@/static/62/621226231.json",
      "@/static/62/621226232.json",
      "@/static/62/621227100.json",
      "@/static/62/621227101.json",
      "@/static/62/621227102.json",
      "@/static/62/621227103.json",
      "@/static/62/621227104.json",
      "@/static/62/621227105.json",
      "@/static/62/621227106.json",
      "@/static/62/621227107.json",
      "@/static/62/621227108.json",
      "@/static/62/621227109.json",
      "@/static/62/621227110.json",
      "@/static/62/621227111.json",
      "@/static/62/621227112.json",
      "@/static/62/621227208.json",
      "@/static/62/621227211.json",
      "@/static/62/621228100.json",
      "@/static/62/621228101.json",
      "@/static/62/621228102.json",
      "@/static/62/621228103.json",
      "@/static/62/621228104.json",
      "@/static/62/621228105.json",
      "@/static/62/621228201.json",
      "@/static/62/621228203.json",
      "@/static/62/621228204.json",
      "@/static/62/621228207.json",
      "@/static/62/621228210.json",
      "@/static/62/621228212.json",
      "@/static/62/623023103.json",
      "@/static/62/623023106.json",
      "@/static/62/623023107.json",
      "@/static/62/623023108.json",
      "@/static/62/623023109.json",
      "@/static/62/623023110.json",
      "@/static/62/623023111.json",
      "@/static/62/623023112.json",
      "@/static/62/623023200.json",
      "@/static/62/623023213.json",
      "@/static/output/output-102-8-1.geojson",
      "@/static/output/output-103-8-1.geojson",
      "@/static/output/output-104-8-1.geojson",
      "@/static/output/output-105-8-1.geojson",
      "@/static/output/output-106-8-1.geojson",
      "@/static/output/output-107-8-1.geojson",
      "@/static/output/output-108-8-1.geojson",
      "@/static/output/output-109-8-1.geojson",
      "@/static/output/output-110-8-1.geojson",
      "@/static/output/output-111-8-1.geojson",
      "@/static/output/output-112-8-1.geojson",
      "@/static/output/output-113-8-1.geojson",
      "@/static/output/output-114-8-1.geojson",
      "@/static/output/output-115-8-1.geojson",
      "@/static/output/output-116-8-1.geojson",
      "@/static/output/output-117-8-1.geojson",
      "@/static/output/output-118-8-1.geojson",
      "@/static/output/output-119-8-1.geojson",
      "@/static/output/output-120-8-1.geojson",
      "@/static/output/output-121-8-1.geojson",
      "@/static/output/output-122-8-1.geojson",
      "@/static/output/output-123-8-1.geojson",
      "@/static/output/output-124-8-1.geojson",
      "@/static/output/output-125-8-1.geojson",
      "@/static/output/output-126-8-1.geojson",
      "@/static/output/output-127-8-1.geojson",
      "@/static/output/output-128-8-1.geojson",
      "@/static/output/output-129-8-1.geojson",
      "@/static/output/output-130-8-1.geojson",
      "@/static/output/output-131-8-1.geojson",
      "@/static/output/output-132-8-1.geojson",
      "@/static/output/output-133-8-1.geojson",
      "@/static/output/output-134-8-1.geojson",
      "@/static/output/output-135-8-1.geojson",
      "@/static/output/output-136-8-1.geojson",
      "@/static/output/output-137-8-1.geojson",
      "@/static/output/output-138-8-1.geojson",
      "@/static/output/output-139-8-1.geojson",
      "@/static/output/output-140-8-1.geojson",
      "@/static/output/output-141-8-1.geojson",
      "@/static/output/output-142-8-1.geojson",
      "@/static/output/output-143-8-1.geojson",
      "@/static/output/output-144-8-1.geojson",
      "@/static/output/output-145-8-1.geojson",
      "@/static/output/output-146-8-1.geojson",
      "@/static/output/output-147-8-1.geojson",
      "@/static/output/output-148-8-1.geojson",
      "@/static/output/output-149-8-1.geojson",
      "@/static/output/output-150-8-1.geojson",
      "@/static/output/output-151-8-1.geojson",
      "@/static/output/output-152-8-1.geojson",
      "@/static/output/output-153-8-1.geojson",
      "@/static/output/output-154-8-1.geojson",
      "@/static/output/output-156-8-1.geojson",
      "@/static/output/output-157-8-1.geojson",
      "@/static/output/output-158-8-1.geojson",
      "@/static/output/output-159-8-1.geojson",
      "@/static/output/output-160-8-1.geojson",
      "@/static/output/output-161-8-1.geojson",
      "@/static/output/output-162-8-1.geojson",
      "@/static/output/output-163-8-1.geojson",
      "@/static/output/output-164-8-1.geojson",
      "@/static/output/output-165-8-1.geojson",
      "@/static/output/output-166-8-1.geojson",
      "@/static/output/output-167-8-1.geojson",
      "@/static/output/output-168-8-1.geojson",
      "@/static/output/output-169-8-1.geojson",
      "@/static/output/output-170-8-1.geojson",
      "@/static/output/output-171-8-1.geojson",
      "@/static/output/output-172-8-1.geojson",
      "@/static/output/output-173-8-1.geojson",
      "@/static/output/output-174-8-1.geojson",
      "@/static/output/output-175-8-1.geojson",
      "@/static/output/output-176-8-1.geojson",
      "@/static/output/output-177-8-1.geojson",
      "@/static/output/output-178-8-1.geojson",
      "@/static/output/output-179-8-1.geojson",
      "@/static/output/output-180-8-1.geojson",
      "@/static/output/output-181-8-1.geojson",
      "@/static/output/output-182-8-1.geojson",
      "@/static/output/output-183-8-1.geojson",
      "@/static/output/output-184-8-1.geojson",
      "@/static/output/output-185-8-1.geojson",
      "@/static/output/output-186-8-1.geojson",
      // 添加更多路径...
    ];
  } else {
    geoJsonUrls = [
      "@/static/区县边界/成县.json",
      "@/static/区县边界/宕昌县.json",
      "@/static/区县边界/徽县.json",
      "@/static/区县边界/康县.json",
      "@/static/区县边界/礼县.json",
      "@/static/区县边界/两当县.json",
      "@/static/区县边界/文县.json",
      "@/static/区县边界/武都区.json",
      "@/static/区县边界/西和县.json",
      "@/static/区县边界/舟曲县.json",
    ];
  }

  // 使用动态导入加载所有 JSON 文件
  const geoJsonPromises = geoJsonUrls.map((url) => importJson(url));

  // 等待所有 JSON 数据加载完成
  const geoJsonDataArray = await Promise.all(geoJsonPromises);

  // 现在 `geoJsonDataArray` 包含了所有加载的 JSON 数据
  console.log(geoJsonDataArray);

  // 处理加载的 GeoJSON 数据,将其转换为 OpenLayers 的 features 并添加到地图中
  geoJsonDataArray.forEach((data) => {
    const features = new GeoJSON().readFeatures(data, {
      featureProjection: "EPSG:4326",
    });

    features.forEach((feature) => {
      vectorSource.addFeature(feature);
      hideFeature(feature); // 自定义逻辑,用于隐藏某些 feature
    });

    previousFeatures = previousFeatures.concat(features); // 更新 previousFeatures
  });
};

 网络与本地请求(打包webpack)

因为需要打包webpack的缘故,所以需要将fetch换成import遍历url传递资源路径,结果是传递的参数和实际书写的参数都是字符串,结果却出现了两个不同的情况。

这是成功的,会打印出module,里面会有我需要的feature。

这是报错的,一片红了,现在只能尝试用绝对的路径去解决问题,不能尝试遍历后使用传参的方法了。 

 问题:

在代码中,使用 await import() 动态导入 JSON 文件时,出现了 找不到 module 的错误,可能是因为你在路径中使用了动态的 url,而不是静态的路径(例如 "@/static/区县边界/成县.json")。ES6 的 import() 需要一个静态的模块路径,这意味着你不能直接将动态的变量传递给它。

有使用fetch解决的方法,但这属于http请求,所以不能使用,使用后打包会出现问题,无法去做成exe文件。

 好一点的解决方法如下:

const importJson = async (url) => {
  try {
    // Webpack 会根据路径将 JSON 文件自动打包并返回
    const data = await import(`@/static/区县边界/${url}`);
    return data.default || data; // 一些情况下可能需要 .default
  } catch (error) {
    console.error(error);
    return null;
  }
};

// 加载 GeoJSON 文件
const loadGeoJsonOrJsonFile = async (vectorSource, zoom) => {
  // 清理之前加载的 features
  previousFeatures.forEach((feature) => {
    vectorSource.removeFeature(feature);
  });
  previousFeatures = [];

  let geoJsonUrls = [];
  if (zoom > 1.6) {
    geoJsonUrls = [
      "621202109.json",  // 路径相对打包后的路径
      "621202110.json",
      // 其他 JSON 文件...
    ];
  } else {
    geoJsonUrls = [
      "成县.json",
      // 其他 JSON 文件...
    ];
  }

  const geoJsonPromises = geoJsonUrls.map((url) => importJson(url));

  const geoJsonDataArray = await Promise.all(geoJsonPromises);

  geoJsonDataArray.forEach((data) => {
    if (data) {
      const features = new GeoJSON().readFeatures(data, {
        featureProjection: "EPSG:4326",
      });

      features.forEach((feature) => {
        vectorSource.addFeature(feature);
        hideFeature(feature); // 自定义逻辑,用于隐藏某些 feature
      });

      previousFeatures = previousFeatures.concat(features);
    }
  });
};

用webpack打包的时候,json文件的加载在webpack5之后就不需要要去改config,但是我的项目中有使用到geojson文件,所以需要去改一下webpack的配置文件。使用了三个方案只有一个有用

npm install json-loader --save-dev

 先去下载一个依赖包然后再去vue.config.js里使用

const path = require("path");

module.exports = {
  transpileDependencies: true, // 转译依赖项
  publicPath: "./", // 设置公共路径

  chainWebpack: (config) => {
    // 设置 @ 别名,确保它指向 src 文件夹
    config.resolve.alias.set("@", path.resolve(__dirname, "src"));

    // 对 .geojson 文件的处理 (使用 Webpack 5 的 asset/resource 模块)
    config.module
      .rule("geojson")
      .test(/\.geojson$/)
      .type("javascript/auto") // 必须使用 javascript/auto 类型才能正确解析 JSON
      .use("json-loader") // 使用 json-loader
      .loader("json-loader")
      .end();

    // 对 .json 文件的处理 (同样使用 asset/resource)
    // config.module
    //   .rule("json")
    //   .test(/\.json$/)
    //   .type("javascript/auto") // Webpack 5 需要设置为 javascript/auto
    //   .use("asset/resource") // 使用 asset/resource 来处理 json 文件
    //   .loader("asset/resource")
    //   .options({
    //     name: "static/json/[name].[hash:8].[ext]", // 配置文件输出路径和文件名
    //   })
    //   .end();
  },
};

成功后的代码改成了如下的样式:

// 保存上一次加载的 features,便于移除
let previousFeatures = [];
// 用于缓存已经加载过的 GeoJSON 数据
let geoJsonCache = {};

// 定义动态导入函数
const importJson = async (url) => {
  if (geoJsonCache[url]) {
    return geoJsonCache[url];
  }
  console.log(url);
  console.log(typeof url);
  // const data = await import("区县边界/成县.json");
  const data1 = await import(`@/static/${url}`);
  // console.log(data);
  console.log(data1);
  geoJsonCache[url] = data1.default || data1; // 有些模块工具需要 `.default`
  return geoJsonCache[url];
};

// 加载 GeoJSON 或 JSON 文件的函数
const loadGeoJsonOrJsonFile = async (vectorSource, zoom) => {
  // 首先移除上次加载的所有 features
  previousFeatures.forEach((feature) => {
    vectorSource.removeFeature(feature);
  });
  previousFeatures = []; // 清空上次加载的 features

  let geoJsonUrls = [];
  if (zoom > 1.6) {
    geoJsonUrls = [
      "62/621202109.json",
      "62/621202110.json",
      "62/621202113.json",
      "62/621202116.json",
      "62/621202122.json",
      "62/621202123.json",
      "62/621202211.json",
      "62/621221100.json",
      "62/621221101.json",
      "62/621221102.json",
      "62/621221103.json",
      "62/621221104.json",
      "62/621221105.json",
      "62/621221106.json",
      "62/621221107.json",
      "62/621221108.json",
      "62/621221109.json",
      "62/621221110.json",
      "62/621221111.json",
      "62/621221112.json",
      "62/621221203.json",
      "62/621221206.json",
      "62/621223100.json",
      "62/621223101.json",
      "62/621223102.json",
      "62/621223103.json",
      "62/621223106.json",
      "62/621223107.json",
      "62/621223108.json",
      "62/621223206.json",
      "62/621223207.json",
      "62/621223209.json",
      "62/621223211.json",
      "62/621223212.json",
      "62/621223213.json",
      "62/621223214.json",
      "62/621223215.json",
      "62/621223216.json",
      "62/621223217.json",
      "62/621223218.json",
      "62/621223219.json",
      "62/621223224.json",
      "62/621224100.json",
      "62/621224102.json",
      "62/621224103.json",
      "62/621224105.json",
      "62/621224108.json",
      "62/621224110.json",
      "62/621224112.json",
      "62/621224113.json",
      "62/621224209.json",
      "62/621225100.json",
      "62/621225101.json",
      "62/621225102.json",
      "62/621225103.json",
      "62/621225104.json",
      "62/621225105.json",
      "62/621225106.json",
      "62/621225108.json",
      "62/621225109.json",
      "62/621225110.json",
      "62/621225111.json",
      "62/621225112.json",
      "62/621225113.json",
      "62/621225114.json",
      "62/621225206.json",
      "62/621225208.json",
      "62/621225210.json",
      "62/621225300.json",
      "62/621225301.json",
      "62/621225302.json",
      "62/621225304.json",
      "62/621225305.json",
      "62/621225306.json",
      "62/621226100.json",
      "62/621226101.json",
      "62/621226102.json",
      "62/621226103.json",
      "62/621226104.json",
      "62/621226105.json",
      "62/621226106.json",
      "62/621226107.json",
      "62/621226108.json",
      "62/621226109.json",
      "62/621226110.json",
      "62/621226111.json",
      "62/621226112.json",
      "62/621226113.json",
      "62/621226114.json",
      "62/621226115.json",
      "62/621226116.json",
      "62/621226117.json",
      "62/621226118.json",
      "62/621226119.json",
      "62/621226120.json",
      "62/621226121.json",
      "62/621226203.json",
      "62/621226215.json",
      "62/621226219.json",
      "62/621226224.json",
      "62/621226228.json",
      "62/621226231.json",
      "62/621226232.json",
      "62/621227100.json",
      "62/621227101.json",
      "62/621227102.json",
      "62/621227103.json",
      "62/621227104.json",
      "62/621227105.json",
      "62/621227106.json",
      "62/621227107.json",
      "62/621227108.json",
      "62/621227109.json",
      "62/621227110.json",
      "62/621227111.json",
      "62/621227112.json",
      "62/621227208.json",
      "62/621227211.json",
      "62/621228100.json",
      "62/621228101.json",
      "62/621228102.json",
      "62/621228103.json",
      "62/621228104.json",
      "62/621228105.json",
      "62/621228201.json",
      "62/621228203.json",
      "62/621228204.json",
      "62/621228207.json",
      "62/621228210.json",
      "62/621228212.json",
      "62/623023103.json",
      "62/623023106.json",
      "62/623023107.json",
      "62/623023108.json",
      "62/623023109.json",
      "62/623023110.json",
      "62/623023111.json",
      "62/623023112.json",
      "62/623023200.json",
      "62/623023213.json",
      "output/output-102-8-1.geojson",
      "output/output-103-8-1.geojson",
      "output/output-104-8-1.geojson",
      "output/output-105-8-1.geojson",
      "output/output-106-8-1.geojson",
      "output/output-107-8-1.geojson",
      "output/output-108-8-1.geojson",
      "output/output-109-8-1.geojson",
      "output/output-110-8-1.geojson",
      "output/output-111-8-1.geojson",
      "output/output-112-8-1.geojson",
      "output/output-113-8-1.geojson",
      "output/output-114-8-1.geojson",
      "output/output-115-8-1.geojson",
      "output/output-116-8-1.geojson",
      "output/output-117-8-1.geojson",
      "output/output-118-8-1.geojson",
      "output/output-119-8-1.geojson",
      "output/output-120-8-1.geojson",
      "output/output-121-8-1.geojson",
      "output/output-122-8-1.geojson",
      "output/output-123-8-1.geojson",
      "output/output-124-8-1.geojson",
      "output/output-125-8-1.geojson",
      "output/output-126-8-1.geojson",
      "output/output-127-8-1.geojson",
      "output/output-128-8-1.geojson",
      "output/output-129-8-1.geojson",
      "output/output-130-8-1.geojson",
      "output/output-131-8-1.geojson",
      "output/output-132-8-1.geojson",
      "output/output-133-8-1.geojson",
      "output/output-134-8-1.geojson",
      "output/output-135-8-1.geojson",
      "output/output-136-8-1.geojson",
      "output/output-137-8-1.geojson",
      "output/output-138-8-1.geojson",
      "output/output-139-8-1.geojson",
      "output/output-140-8-1.geojson",
      "output/output-141-8-1.geojson",
      "output/output-142-8-1.geojson",
      "output/output-143-8-1.geojson",
      "output/output-144-8-1.geojson",
      "output/output-145-8-1.geojson",
      "output/output-146-8-1.geojson",
      "output/output-147-8-1.geojson",
      "output/output-148-8-1.geojson",
      "output/output-149-8-1.geojson",
      "output/output-150-8-1.geojson",
      "output/output-151-8-1.geojson",
      "output/output-152-8-1.geojson",
      "output/output-153-8-1.geojson",
      "output/output-154-8-1.geojson",
      "output/output-156-8-1.geojson",
      "output/output-157-8-1.geojson",
      "output/output-158-8-1.geojson",
      "output/output-159-8-1.geojson",
      "output/output-160-8-1.geojson",
      "output/output-161-8-1.geojson",
      "output/output-162-8-1.geojson",
      "output/output-163-8-1.geojson",
      "output/output-164-8-1.geojson",
      "output/output-165-8-1.geojson",
      "output/output-166-8-1.geojson",
      "output/output-167-8-1.geojson",
      "output/output-168-8-1.geojson",
      "output/output-169-8-1.geojson",
      "output/output-170-8-1.geojson",
      "output/output-171-8-1.geojson",
      "output/output-172-8-1.geojson",
      "output/output-173-8-1.geojson",
      "output/output-174-8-1.geojson",
      "output/output-175-8-1.geojson",
      "output/output-176-8-1.geojson",
      "output/output-177-8-1.geojson",
      "output/output-178-8-1.geojson",
      "output/output-179-8-1.geojson",
      "output/output-180-8-1.geojson",
      "output/output-181-8-1.geojson",
      "output/output-182-8-1.geojson",
      "output/output-183-8-1.geojson",
      "output/output-184-8-1.geojson",
      "output/output-185-8-1.geojson",
      "output/output-186-8-1.geojson",
      // 添加更多路径...
    ];
  } else {
    geoJsonUrls = [
      "区县边界/成县.json",
      "区县边界/宕昌县.json",
      "区县边界/徽县.json",
      "区县边界/康县.json",
      "区县边界/礼县.json",
      "区县边界/两当县.json",
      "区县边界/文县.json",
      "区县边界/武都区.json",
      "区县边界/西和县.json",
      "区县边界/舟曲县.json",
    ];
  }

  // 使用动态导入加载所有 JSON 文件
  const geoJsonPromises = geoJsonUrls.map((url) => importJson(url));

  // 等待所有 JSON 数据加载完成
  const geoJsonDataArray = await Promise.all(geoJsonPromises);

  // 现在 `geoJsonDataArray` 包含了所有加载的 JSON 数据
  console.log(geoJsonDataArray);

  // 处理加载的 GeoJSON 数据,将其转换为 OpenLayers 的 features 并添加到地图中
  geoJsonDataArray.forEach((data) => {
    const features = new GeoJSON().readFeatures(data, {
      featureProjection: "EPSG:4326",
    });

    features.forEach((feature) => {
      vectorSource.addFeature(feature);
      hideFeature(feature); // 自定义逻辑,用于隐藏某些 feature
    });

    previousFeatures = previousFeatures.concat(features); // 更新 previousFeatures
  });
};

在改代码的时候又碰到个模块问题:

同步模块 vs 异步模块

同步的请求返回的值

异步的请求返回的值

 

 

  • import: 返回的是一个 Promise,你需要通过 thenawait 来获取模块对象。

  • await import: 使用 await 会等待模块加载完成,然后返回模块对象。

Promise 的内部状态

当你查看 Promise 时,会看到 [[PromiseState]][[PromiseResult]]

  • [[PromiseState]]: "pending" 表示 Promise 还在等待完成。

  • [[PromiseState]]: "fulfilled" 表示 Promise 已完成,其结果存储在 [[PromiseResult]] 中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值