[英]Node event emitter with condition
我有一個節點應用程序,當我可以運行其他邏輯時引發事件,例如server.js將在其啟動時發出事件(例如...),然后我應該在引發該事件后運行邏輯
第一個檔案
server.js-> runProcess->完成->發出事件
secondFile
聽事件->運行新流程
問題是firstFile / server.js僅運行一次, secondFile可以運行多次,因此第一次運行正常,但是第二次缺少該事件,因此不會調用該代碼。
在這里,它將是第一次被調用,並且我需要在事件可用時第一次被調用
但是對於proxy.web ,在第二個文件中它可以被多次調用,因此在第二次中它失敗了,因為不再從不被調用的第一個文件中引發事件了,我該如何克服呢?
Actions.eventEmitter.on('Available', function () {
proxy.web(req, res, {
target: 'http://' + hostname + ':' + appPort
});
})
您可以使用諾言解決該問題。 在server.js中添加此代碼。
Actions.promiseAvailable = new Promise(function(resolve, reject) {
Actions.eventEmitter.on('Available', function() {
resolve();
});
});
然后在第二個文件中
Actions.promiseAvailable.then(function() {
//doSomething
});
缺點是您必須為每種可能的事件類型添加另一種方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.