新年快乐!
我正在看一个反应性的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/