JavaScript 聚合物 PWA 初学者工具包中的随机行为导出导入
JavaScript export imports at random behaviour in Polymer PWA Starter Kit
我有一个用作服务器模型的文件,导入所有其他服务并导出它们,所以我只需要在其他文件中导入一次,如下所示:
import * as User from './user.js';
import * as Service from './service.js';
export { User, Service };
现在这些服务中的每一个都简单地导出一些常量。像这样:
export const registeredUsers = [
]
我想在其他文件中使用类似 Server.User.registeredUsers 的东西。这有点工作,我的组件像这样导入服务器:
import * as Server from '../../mockup/server.js';
旁注:我正在使用 PWA 入门套件:https://github.com/Polymer/pwa-starter-kit
现在遇到如下问题情况:
我正在导入 * 作为服务器,如上所示,生成的对象有时具有默认属性。这意味着有时我必须访问 Server.User,有时我必须访问 Server.default.User。这似乎完全是随机的。
我做了这样的解决方法:
let User = Server.User || Server.default.User;
这将永远有效。但这有点老套,因为这种行为似乎不可预测。我想调整一下。这可能是什么问题,我该如何解决?
我已经尝试将 server.js 中的导出定义为默认值。
server.js
import * as User from './user.js';
import * as Service from './service.js';
export default { User, Service };
并像这样导入:
import Server from '../../mockup/server.js';
导致同样的问题。
对我来说这是一个非常有趣的问题,可能是什么原因?使用 Server.default.User 和 Server.User 的时间绝对是随机的。我可以继续刷新页面,它会不时更改其行为(有时每次刷新,有时仅在 3 次或更多次之后)。
我可能不会真正使用这个巨大的 import/export 文件进行生产,但我仍然想解决这个问题。出于好奇。
编辑:
console.log(Server);
console.log(Server.Service);
导致:
或:
上述问题的发生是由于错误的动态导入造成的。在我项目的其他地方,我有两个动态导入,其中一个是另一个的父级。上面描述的 "random" 发生是第一个还是第二个 import 赢得比赛的结果(尽管它为什么会导致它这样做的方式让我感到困惑)。
这意味着我必须确保 import1 在 import2 之前出现,我用
简单地解决了这个问题
await import('dynamic import1');
这解决了上面的问题。
也许这会帮助遇到此问题的其他人。
我有一个用作服务器模型的文件,导入所有其他服务并导出它们,所以我只需要在其他文件中导入一次,如下所示:
import * as User from './user.js';
import * as Service from './service.js';
export { User, Service };
现在这些服务中的每一个都简单地导出一些常量。像这样:
export const registeredUsers = [
]
我想在其他文件中使用类似 Server.User.registeredUsers 的东西。这有点工作,我的组件像这样导入服务器:
import * as Server from '../../mockup/server.js';
旁注:我正在使用 PWA 入门套件:https://github.com/Polymer/pwa-starter-kit
现在遇到如下问题情况:
我正在导入 * 作为服务器,如上所示,生成的对象有时具有默认属性。这意味着有时我必须访问 Server.User,有时我必须访问 Server.default.User。这似乎完全是随机的。
我做了这样的解决方法:
let User = Server.User || Server.default.User;
这将永远有效。但这有点老套,因为这种行为似乎不可预测。我想调整一下。这可能是什么问题,我该如何解决?
我已经尝试将 server.js 中的导出定义为默认值。
server.js
import * as User from './user.js';
import * as Service from './service.js';
export default { User, Service };
并像这样导入:
import Server from '../../mockup/server.js';
导致同样的问题。
对我来说这是一个非常有趣的问题,可能是什么原因?使用 Server.default.User 和 Server.User 的时间绝对是随机的。我可以继续刷新页面,它会不时更改其行为(有时每次刷新,有时仅在 3 次或更多次之后)。
我可能不会真正使用这个巨大的 import/export 文件进行生产,但我仍然想解决这个问题。出于好奇。
编辑:
console.log(Server);
console.log(Server.Service);
导致:
或:
上述问题的发生是由于错误的动态导入造成的。在我项目的其他地方,我有两个动态导入,其中一个是另一个的父级。上面描述的 "random" 发生是第一个还是第二个 import 赢得比赛的结果(尽管它为什么会导致它这样做的方式让我感到困惑)。
这意味着我必须确保 import1 在 import2 之前出现,我用
简单地解决了这个问题await import('dynamic import1');
这解决了上面的问题。
也许这会帮助遇到此问题的其他人。