2017-01-15 2 views
1

Я использую bluebird 2.x.TypeError: Невозможно установить свойство «_bitField» неопределенного (библиотека Bluebird)

Я звоню кафке, которая завернута в обещание. Обещание разрешается, если сообщение опубликовано. Промис отклоняется, если вызов кафки не удается.

Вот кусок кода, который вызывает ошибку -

redis.get(something) 
.then(function() { 
      return Promise(function(resolve, reject) { // This is Line 98 in the stacktrace 
       producer.send([ 
        { 
         topic : "Ganga", 
         messages : [JSON.stringify({// some object})] 
        } 
       ], function(err, data) { 
        if(err) { 
         logger.error("Error") 
         logger.error(err); 
         reject(err); 
         return; 
        } 
        resolve(data); 
       }) 
      }); 
     }) 

StackTrace выглядит следующим образом

TypeError: Cannot set property '_bitField' of undefined 
    at <project base path>/index.js:98:20 
    at bound (domain.js:280:14) 
    at runBound (domain.js:293:12) 
    at runCallback (timers.js:649:20) 
    at tryOnImmediate (timers.js:622:5) 
    at processImmediate [as _immediateCallback] (timers.js:594:5) 
From previous event: 
    at Server.<anonymous> (<project base path>/index.js:97:10) 
    at next (<project base path>/node_modules/restify/lib/server.js:912:30) 
    at f (<project base path>/node_modules/once/once.js:25:25) 
    at Server.parseBody (<project base path>/node_modules/restify/lib/plugins/body_parser.js:94:13) 
    at next (<project base path>/node_modules/restify/lib/server.js:912:30) 
    at f (<project base path>/node_modules/once/once.js:25:25) 
    at IncomingMessage.done (<project base path>/node_modules/restify/lib/plugins/body_reader.js:121:13) 
    at IncomingMessage.g (events.js:292:16) 
    at emitNone (events.js:86:13) 
    at IncomingMessage.emit (events.js:185:7) 
    at endReadableNT (_stream_readable.js:974:12) 
    at _combinedTickCallback (internal/process/next_tick.js:74:11) 
    at process._tickDomainCallback (internal/process/next_tick.js:122:9) 

Любое предложение о том, что может быть не так?

+0

Что такое 'производитель.send'? Также, пожалуйста, откройте проблему в реплике bluebird. –

+1

Вам не хватает 'new' перед' Promise', но это не ошибка, которую я ожидал бы получить. –

+0

Используйте новые перед обещанием. На прошлой неделе я столкнулся с такой же ошибкой. –

ответ

2

Ошибка, сброшенная в строке 98, определенно из-за того, что она не использует новые перед обещанием.

Смежные вопросы