如何执行并获取NodeJS Promise的结果?

时间:2019-04-12 04:01:39

标签: node.js

var Queue = require('bull');

// Init queue
var workQueue = new Queue("workQueue", "redis://pass@ip:6379");

// Add 10 jobs to the queue
for (i=0; i<10; i++) {
    workQueue.add({msg:i});
}

// Get # of jobs in queue
workQueue.count(); // <-- does not return queue job count

根据documentation.count()

  

“返回承诺,返回队列中的作业数”

如果我正确理解这一点,则promise是一个等待执行的异步过程。那么我该如何执行这个承诺并获得结果呢?

1 个答案:

答案 0 :(得分:1)

如果我正确地猜到了您的要求,那么您正在做queue.count(),以确定是否有待处理的作业。

您应该执行setInterval()定期检查,然后在没有任何未决事件时采取措施:

let check = setInterval(()=>{
    workQueue.count().then(_count => {
        if (_count === 0){
            clearInterval(check);
            /* do what you need to do here */
        }
    });
}, 5000);