【发布时间】:2016-07-13 01:57:40
【问题描述】:
我猜 Meteor 强制对其用户执行顺序启发式而不是提供 import 语义的话题已经被讨论死了。
尽管如此,我认为至少应该有一种方法可以 100% 确保可以在其他任何事情之前运行一组特定的脚本。据我了解,由于加载顺序启发式在其他所有内容上都是深度优先的(即使您在不同的地方有多个 lib 文件夹,由于某种原因,更深的文件夹首先运行),基本上没有办法以确保某些脚本在其他所有内容之前执行,无论执行多深,除非您将其放入包中。
正确吗?在即将发布的版本中,有什么可以补救这种情况的吗?
目前,我正在考虑编写一个小的load-order-util 包,它至少允许将回调的执行推迟到startup 并且在一组给定的全局定义符号准备好之后,如下所示:
Global.dependsOnSymbols = function(symbolNameOrNames, cb) { ... };
有更好的建议吗?
【问题讨论】:
-
你到底想在这个脚本中做什么?流星相关的操作或只是通用的 javascript 来初始化一些东西?
-
@ravish.hacker 正如我刚刚评论的第一个答案,我有一大堆代码,其中一些代码太无礼地依赖于其他文件夹中可能或可能不如它本身更深入。
标签: javascript meteor initialization startup deferred-execution