Пытаясь написать небольшое расширение chrome, которое опирается на функции запроса обратного вызова в интерфейсе chrome.*
, я быстро приземлился на promises и async/await, так как мне нужно было гарантировать порядок определенных операций, пытаясь избежать callback hell.
Однако, как только я ввел async/await в некоторые функции, каждая функция, которая их использовала, также должна была быть превращена в async function
, чтобы иметь возможность await
вернуть значение. В конце концов даже некоторые глобальные константы стали promises, например.
const DEBUG = new Promise(function(resolve){
chrome.management.getSelf(resolve);
}).then(function(self){
return self.installType == 'development';
});
Однако теперь мне нужно писать await
всюду, и появление странных ошибок, таких как if(DEBUG){...}
, всегда выполняется слишком просто.
Пока кажется, что можно идентифицировать ошибки с помощью ESLINT, запись await
везде кажется излишне громоздкой, и поэтому мне было интересно, если , если Javascript имеет некоторую лучшую конструкцию что мне не хватает?
(Субъективно мое текущее использование await/async кажется обратным, promises хранится как есть, если явно не ожидалось, но мне кажется более желательным, чтобы promises ожидал по умолчанию в async-функциях и сохранялся как голый promises только при явной просьбе.)