簡體   English   中英

處理事件。 逐一。 Node.js的

[英]Handle events. One by one. Node.js

我有此事件偵聽器:

manager.on('newOffer', (offer) => {
console.log(`We have a new offer :#${offer.id}`.bgGreen);
getInventory( function(){
processTradeOffer(offer);});});

當出現許多“ newOffers”時,我的問題就產生了。 無法正確處理它們,因為程序會先觸發“ newOffers”而沒有先進行處理。

我需要什么(我認為):當出現“ newOffer”時,關閉事件偵聽器,完成功能,然后再次打開。 那可能嗎?

聽起來您需要並發性為1的隊列,而async.queue()可以提供以下內容:

const handler = (offer, done) => {
  console.log(`We have a new offer :#${offer.id}`.bgGreen);
  getInventory(() => {
    processTradeOffer(offer); // NB: if this is async, pass a callback that calls `done`
    done();
  });
};

const queue = require('async').queue(handler, 1);

...

// Add a new offer to the queue:
let offer = new Offer(); // or however you create `offer` objects
queue.push(offer);

(但是,如果您不能足夠快地處理報價,這可能會成為瓶頸,在這種情況下,您可能需要重新考慮如何處理報價)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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