Можно ли написать код JavaScript для выполнения HTTP-запросов таким образом, чтобы один и тот же код мог использоваться в нескольких средах выполнения с подходящей служебной библиотекой? В этом случае было бы желательно, чтобы код мог работать с node.js, Google App Script и как расширение Google Chrome или приложение ChromeOS.
Проблема в том, что эти разные среды выполнения имеют разные виды API и разные возможности для адаптации стилей программирования. App Script предоставляет URLFetchApp, который является синхронным. Chrome и другие браузеры поддерживают XMLHttpRequst, который является асинхронным. Node.js поддерживает как асинхронное, так и синхронное программирование, и различные стили можно комбинировать, например, с помощью волокон. Однако волокна не поддерживаются в других средах выполнения. С другой стороны, Google App Script, похоже, не поддерживает подключение асинхронного кода с помощью async / await.
Кажется, что невозможно написать код, который поддерживает все эти среды выполнения, без какой-либо предварительной обработки кода.