未在控制台中显示的类:es6和meteor

时间:2015-07-23 15:24:40

标签: javascript meteor ecmascript-6 babeljs

我正在使用grigio:babel在流星中转换es6。我有一个名为camera.es6的简单文件来提供相机功能

if (Meteor.isClient) {
  class Camera {
    constructor() {
    }
    getStream() {
      return new Promise(function (resolve, reject) {
        navigator.webkitGetUserMedia({ video: true }, resolve, reject);
      });
    }
  }
}

然后我进入我的浏览器控制台并尝试使用新相机。

var c = new Camera()
VM1898:2 Uncaught ReferenceError: Camera is not defined
    at <anonymous>:2:13
    at Object.InjectedScript._evaluateOn (<anonymous>:905:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:838:34)
    at Object.InjectedScript.evaluate (<anonymous>:694:21)

相机不应该有空吗? Babel似乎说它应该只是将它转换为类似函数的结构,以使其在ES5中工作。我也尝试在babel的repl and it translated perfectly fine

中运行它

如何使用meteor和es6访问我的课程?

1 个答案:

答案 0 :(得分:4)

我想babel将你所有代码都包装成一个闭包,所以你无法从控制台到达Camera。尝试做这样的事情

window.Camera = Camera;

课后定义