簡體   English   中英

有條件的節點事件發射器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM