Javascript Can';我不明白为什么本机Promise变量未定义

Javascript Can';我不明白为什么本机Promise变量未定义,javascript,Javascript,我有一个很大的JavaScript库,我用Google的闭包编译器压缩了它 我已经将我的压缩代码包装在一个匿名函数中,这样就不会出现名称冲突,这是作为一个外部文件包含的,如下所示 // My external JS file (function(){ // Closure compiler compressed code })(); 但正因为如此,我的代码不断抛出一个未定义的错误Promise。但奇怪的是,它可以在主页的范围内使用。因此,如果我进入调用堆栈的最顶端,在控制台中键入Pro

我有一个很大的JavaScript库,我用Google的闭包编译器压缩了它

我已经将我的压缩代码包装在一个匿名函数中,这样就不会出现名称冲突,这是作为一个外部文件包含的,如下所示

// My external JS file
(function(){
    // Closure compiler compressed code
})();
但正因为如此,我的代码不断抛出一个未定义的错误
Promise
。但奇怪的是,它可以在主页的范围内使用。因此,如果我进入调用堆栈的最顶端,在控制台中键入
Promise
,它将返回函数。我已经检查过了,它在任何地方都没有被过度书写

我想不出还有什么能让它不被定义的,我被卡住了

匿名函数如何导致
Promise
变量未定义?

我上传了一个演示我的问题的屏幕演示,屏幕演示软件运行有点滞后


编辑:Promise是当前chrome版本中的一个内置本机变量。在我的代码中,有这样一些东西

// This condition was never being met as it contained code to check if I'm
// in a node.js environment.
if (thisConditionIsNotTrue){
    // But because there's no 'var' before Promise it's being hoisted and 
    // setting my global Promise variable to undefined. Even though if the
    // require statement was actually run it would throw an error as it
    // doesn't exist in the browser.
    Promise = require("node-promise").Sj;
}