试图编写一个小的chrome扩展,它依赖于接口的回调密集查询功能chrome.*,我很快就登陆了promises和async/await,因为我需要保证某些操作的顺序,同时试图避免回调地狱.
但是,一旦我将async/await引入某些函数,使用它们的每个函数也必须转换为一个async function以便能够await返回值.最终甚至一些全局常量成为了承诺,例如
const DEBUG = new Promise(function(resolve){
chrome.management.getSelf(resolve);
}).then(function(self){
return self.installType == 'development';
});
Run Code Online (Sandbox Code Playgroud)
但是,现在我需要在await任何地方写,并且引入奇怪的错误就像if(DEBUG){...}总是被执行变得太容易了.
虽然似乎可以使用ESLINT识别错误,但await在任何地方写入看起来都是不必要的麻烦,因此我想知道Javascript是否有一些我错过的更好的构造?
(主观上我当前使用的await/async似乎是向后的;除非明确等待,否则Promise保持原样,但我似乎更希望在异步函数中默认等待承诺,并且仅在明确请求时保持为裸承诺.)