【问题标题】:Can't figure out why the native Promise variable is undefined无法弄清楚为什么原生 Promise 变量未定义
【发布时间】:2015-05-18 08:35:51
【问题描述】:

我有一个用 Google 的闭包编译器压缩的大型 JavaScript 库。

我已将我的压缩代码包装在一个匿名函数中,这样我就不会遇到名称冲突,它作为外部文件包含在这样的外部文件中

// My external JS file
(function(){
    // Closure compiler compressed code
})();

但正因为如此,我的代码不断抛出 Promise 未定义的错误。但奇怪的是它在主页范围内可用。因此,如果我转到调用堆栈的最顶部并在控制台中键入Promise,它会返回该函数。我已经检查过它没有在任何地方被覆盖。

我想不出任何其他可能导致它未定义的东西,我被卡住了。

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

我已经上传了一个截屏视频here 来演示我的问题,运行截屏软件时有点滞后。

编辑:Promise 是当前版本 chrome 中的内置原生变量

【问题讨论】:

    标签: javascript


    【解决方案1】:

    原来是在吊装。在我的代码中的某个地方有一些类似的东西

    // 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 2019-05-05
      • 1970-01-01
      • 2022-09-15
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      相关资源
      最近更新 更多