我需要什么:
asyncFunc(..., function cb() {
console.log("async function finished");
});
console.log("AFTER async function finished");
我知道标题和这个例子可能会引发一些关于JS中正确的异步编程的强烈反应,但是如果你不相信我这至少是一个好的解决方案,我添加了一个描述为什么我需要它方式,但我也会对“更好”的事情感到非常满意。
我的项目使用最新版本的打字稿,因此可能的解决方案可以使用async / await,generator或其他更新概念。
为什么我需要它:
我知道在大多数情况下这是错误的,我可能忽略了细节中的一些选项,但我认为这是最好的解决方案。
我正在开发一个在实际项目(Angular,React,...)之前运行的库,它基于@Decorators。该库仅用于开发,因此可以接受由阻塞解决方案引入的增加的启动时间。我有一个类装饰器,它设置一个数据结构,然后在其他装饰器中使用。数据结构设置是异步的(上面是asyncFunc),我需要暂停进一步的执行,直到建立数据结构,否则当调用使用这些数据的装饰器时它就没有准备好。由于装饰器是分离的并具有预定义的签名和行为,因此我不知道有任何方法可以使它们异步或依赖于另一个函数。
感谢