【发布时间】:2020-07-24 19:03:03
【问题描述】:
我的app.js 代码中有以下单例:
const TodoManager = (function () {
const allTodos = [];
return {
addNewTodo: function (title, color) {
allTodos.push(new Todo(title, color));
},
};
})();
我想将addNewTodo 函数导出到另一个.js 文件,所以我将它附加到app.js 的末尾:
module.exports = TodoManager
然后,在我的dom.js 文件(我想使用addNewTodo 函数的文件)上,我将其导入:
import TodoManager from './app.js';
但是,每次我尝试访问它的任何对象时,它都会返回 undefined。我做错了什么愚蠢的错误吗?
(我使用 Parcel.js 作为打包器)
【问题讨论】:
-
每次我尝试访问它的任何对象时你能说明你是如何尝试访问它们的吗?
-
@CertainPerformance 是的!所以,在我的
dom.js文件中,如果我附上console.log(TodoManager.addNewTodo()),例如,它指出.addNewTodo()不是一个函数 -
你可能有一个循环依赖,导致
TodoManager没有在你期望的时候被定义 -
@CertainPerformance mmm 很有趣,所以也许我应该使用异步,对吧?你能告诉我它是怎么做的吗?
-
不,使用异步函数不能解决问题。很难说不看完整代码,看看循环依赖在哪里
标签: javascript parceljs