新年快乐!

我正在看一个反应性的udemy教程(来自MaximillianSchwarzmüller的教程),那个家伙告诉我,我可以毫无问题地使用异步ES6函数.then(),因为它也可以在较旧的浏览器中工作,因为“编译为在旧版浏览器中也可以使用的代码”

现在我问自己,.then()会被编译成什么,以便它也可以在较旧的浏览器中运行?

他是说通过了解它的渲染引擎将其编译为某些C ++渲染内容,还是要通过Babel将其编译为更简单的普通JavaScript(如ES6箭头函数)?

也可能是我理解“编译”一词错了吗?我有点困惑。

非常感谢你! :)

最佳答案

.then()被编译成什么,以便它也可以在较旧的浏览器中工作?


没什么不同。使用ES6 Promise的代码在语法上仍然是有效的ES5代码(假定它不使用其他ES6功能),与新语法(例如,箭头功能,类定义等)不同,它不需要进行编译。

then只是一个普通的方法调用(在ES5和ES6中),但是方法的定义由ES6环境提供。在开始使用诺言的ES5中,您需要包括一个诺言库(例如Q或Bluebird)。要使假定存在ES6 Promise的代码在较旧的浏览器中运行,您需要使用polyfill(例如,从one of these列表中获取)。 polyfill只是一个实现相同API的小型ES5脚本。

关于javascript - 然后,“then”会编译成什么,以便在较旧的浏览器中运行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54053505/

10-11 05:45
查看更多