我在node.js服务器中使用node-celery 0.2.8,我创建,在client.on.on()上使用等待日志"最后"。但是,代码控制台日志首先是"最终",然后在完成所有代码之后,Console Log Result。谁能帮我让等待的client.on.on.on()?我只是希望代码可以按顺序执行,并按照asychronise请求等待。
async(ctx) => {
const client = celery.createClient({
CELERY_BROKER_URL: 'amqp://guest:guest@172.**.2.**:5672//',
CELERY_RESULT_BACKEND: 'redis://172.**.2.**:6379/2',
CELERY_ROUTES: {
'street.add_account_multi': {'queue': 'street_default'},
}
});
await client.on('connect', () => {
client.call('street.add_account_multi', [crawlers], function (result) {
console.log(result);
});
});
console.log('finally');
}
请尝试将'连接'事件后的操作放在承诺之后,然后等待解决。
let clientConnect = new Promise((resolve, reject) => {
client.on('connect',() => {
client.call('street.add_account_multi', [crawlers], function(result) {
console.log(result);
resolve(result);
});
})
});
await clientConnect;
console.log('finally');