【发布时间】:2017-06-28 02:08:39
【问题描述】:
Async/await 真的很方便,但我想要与它们相反的行为。除非我手动要求它们等待承诺,否则其他函数不会继续运行,而是希望函数产生,除非我手动指定它们继续并行运行。
例如,这段代码会打印出1 3 2:
function wait(ms) {
return new Promise(r => setTimeout(r, ms));
}
async function a() {
console.log("1");
await wait(5000);
console.log("2");
}
a();
console.log("3");
我希望它打印出1 2 3,函数a() 在我等待 5 秒并打印 2 之前不会真正返回。我正在做一个我更喜欢轻量级的扩展,所以我宁愿不使用 3rd 方库。
有什么办法吗?
【问题讨论】:
-
“函数
a()直到我等了 5 秒才真正返回” 这根本不可能,除非 Chrome 向插件公开了这样的功能。 -
全局等待是不允许的,大概是为了向后兼容。您需要将整个文件包装在异步函数中。
标签: javascript google-chrome-extension async-await ecmascript-2017