我必须将一个函数传递给另一个函数,并将其作为回调执行.问题是有时这个函数是异步的,比如:
async function() {
// Some async actions
}
Run Code Online (Sandbox Code Playgroud)
所以我想执行await callback()或callback()取决于它接收的函数类型.
有没有办法知道函数的类型?
该提议建议async功能可以使用发动机功能,虽然我在ES2017规范中找不到这方面的确认.
此外,当发电机在原型铬/ Node.js的变得一团糟,async似乎功能不受到影响,这表明GeneratorFunction不使用AsyncFunction,至少直接:
Object.getPrototypeOf((function * () {}).prototype).next = null;
(async () => {
return await Promise.resolve(1);
})()
.then(console.log);
Run Code Online (Sandbox Code Playgroud)
为什么说async/ await现有的本地实现的工作?
这些实现是否比Promise使用提案建议的/ generator函数方法更高效,并且通常在Babel和TypeScript中实现?