通常的场景.我希望有一些解耦的代码,即在某些东西准备就绪时触发事件.对于整个应用程序运行,这只会发生一次.
另一方面,还有另一段代码,我想在触发两个或多个事件时发生其他事情.我的意思是像所有这些,如依赖.
好吧,更多异步的东西在一起...绝对承诺对吗?
然后我开始思考.使用pub/sub进行一次性活动真的很明智吗?仅仅制定可接受的承诺,一旦该事件即将被触发,就会解决这个问题会更好吗?但是,这意味着我需要将解耦代码相互连接起来.有一件事是共享EventEmitter,但依赖于某些代码来实际创建承诺...听起来相当糟糕.
所以我在考虑某种混合.有模块,其他模块可以通过它的名称请求"事件"并获得准备好的Promise对象.然后,其他模块应该触发该事件并以这种方式有效地完成/拒绝该事件.
var promisedLand = require('./promisedLand');
promisedLand.waitFor('event'); // returns promise
promisedLand.resolve('event', value);
promisedLand.reject('event', error);
Run Code Online (Sandbox Code Playgroud)
您对此解决方案有何看法?有机会有这样的解决方案吗?