Что «потом» компилируется, чтобы он работал в старых браузерах? - PullRequest
0 голосов
/ 05 января 2019

с новым годом!

Я смотрю учебник по реагированию на удэми (от Максимилиана Шварцмюллера), и парень сказал мне, что я могу без проблем использовать асинхронную функцию ES6 .then (), поскольку она также будет работать в старых браузерах », так как код компилируется в код, который также работает в старых браузерах "

А теперь я спрашиваю себя, для чего компилируется .then (), чтобы он также работал в старых браузерах?

Имеет ли он в виду, что он компилируется в некоторые средства визуализации C ++ через механизм визуализации, который его понимает, или он имеет в виду, что он компилируется в более простой обычный javascript, такой как функции стрелок ES6, скомпилированные через Babel?

Может ли быть так, что я неправильно понимаю слово "компилировать"? Я немного смущен.

Большое спасибо! :)

Ответы [ 2 ]

0 голосов
/ 05 января 2019

С чем скомпилируется .then(), чтобы он также работал в старых браузерах?

Ничего особенного. Код, использующий обещания ES6, все еще является синтаксически действительным кодом ES5 (при условии, что он не использует никаких других функций ES6), в отличие от нового синтаксиса (например, функции стрелки, определения классов и т. Д.) Его не нужно переносить.

then - это простой вызов метода (как в ES5, так и в ES6), однако определение метода предоставляется средой ES6. В ES5, где начали использоваться обещания, вам нужно было включить библиотеку обещаний (например, Q или Bluebird). Чтобы код, предполагающий существование ES6 Promise, выполнялся в старых браузерах, вам потребуется polyfill (например, из одного из этих списков). Polyfill - это небольшой скрипт ES5, который реализует тот же API.

0 голосов
/ 05 января 2019

Компиляция (в зависимости от определения) - это в основном преобразование кода на одном языке в код на другом - этот процесс иногда также называют переводом . Вы можете скомпилировать C ++ в собственный код, но вы также можете скомпилировать код на Java в C ++ или скомпилировать код в одной версии языка в другую. И это в основном то, что делают компиляторы JavaScript - они переводят код, написанный в более новой версии стандарта (например, ES6), в более старую версию (например, ES5). Тип компилятора, который компилирует код из одной версии языка в другую, часто называют transpiler .

Что касается того, во что компилятор будет переводить код: это зависит от компилятора, но очень часто в начало файла результатов внедряется некая разновидность полизаполнения (в основном пользовательская реализация встроенной функции). , делая отсутствующую функцию доступной для вашей кодовой базы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...