【发布时间】:2021-02-05 23:36:25
【问题描述】:
在我的Fastify 路由的handler 中,我将一个类的对象添加到我的Bull 队列中。在队列的 process 方法中,这个对象不再是类的实例。这是正常的还是我缺少一些(或很多)基础知识?
const fastify = require('fastify')({ logger: true })
const Queue = require('bull');
let addQueue = new Queue('Add', 'redis://127.0.0.1:6379');
...
addQueue.process(function(job, done){
console.log(job.data.dataObj instanceof ClasssDefinedSomwhereElse);
}
...
fastify.route({
method: 'POST',
url: '/',
...
handler: async (request, reply) => {
if(isFirstRequest) {
classObj = new ClasssDefinedSomwhereElse();
isFirstRequest = false;
} else {
console.log(classObj instanceof ClasssDefinedSomwhereElse);
addQueue.add({dataObj: classObj});
}
addQueue.add({dataObj: classObj}); 或 addQueue.add(classObj); 没有区别。
handler 打印 true 和 process 方法打印 false。这是为什么呢?
我最终要做的是,在 process 方法中,使用我刚刚传入的对象调用类的方法。我不是来自 Javascript 背景,所以我想我可能错过了一些基本的东西。任何帮助表示赞赏。
【问题讨论】:
标签: javascript class object fastify bull-queue