Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ecmascript 6 凤凰频道_Ecmascript 6_Elixir_Phoenix Framework - Fatal编程技术网

Ecmascript 6 凤凰频道

Ecmascript 6 凤凰频道,ecmascript-6,elixir,phoenix-framework,Ecmascript 6,Elixir,Phoenix Framework,当我浏览客户端通道代码(在phoenix.js文件中)时,我看到它使用ES6。示例代码: let chan = socket.chan("rooms:123", {token: roomToken}) // chan.on("new_msg", msg => console.log("Got message", msg) ) // $input.onEnter( e => { // chan.push("new_msg", {body: e.target.

当我浏览客户端通道代码(在phoenix.js文件中)时,我看到它使用ES6。示例代码:

let chan = socket.chan("rooms:123", {token: roomToken})
//     chan.on("new_msg", msg => console.log("Got message", msg) )
//     $input.onEnter( e => {
//       chan.push("new_msg", {body: e.target.val})
//           .receive("ok", (message) => console.log("created message", message) )
//           .receive("error", (reasons) => console.log("create failed", reasons) )
//           .after(10000, () => console.log("Networking issue. Still waiting...") )

this.onError( reason => {
      this.socket.log("channel", `error ${this.topic}`, reason)
      this.state = CHAN_STATES.errored
      this.rejoinTimer.setTimeout()
    })
这意味着它不会在IE和Safari中运行。我不应该用一些填充物吗? 最好的方法是什么?
另外,我的印象是polyfills覆盖类/let/…但不覆盖箭头函数/新字符串插值。我应该自己修改吗?

由于ES6为语言添加了新语法,因此无法对箭头函数进行多边形填充

但是,在创建新应用程序时,Phoenix会安装一个名为的库,用于组合资产。它包括一个包装器,用于将ES6转换为将在浏览器中运行的JavaScript

如果查看
priv/static/app.js
(编译输出)而不是
web/static/app.js
(源代码),您会发现它没有新的ES6语法

如果使用某些函数,您可能会发现需要包含
babel polyfill.js
,您可以在


这是在Phoenix 0.10.0中引入的,您可以在公告中了解更多信息。再次感谢你。