javascript - NodeJs/Bluebird - keep getting Unhandled rejection Error -
am building daemon listen tcp connection > sends commands > listen events..
so decided use bluebird rid of callbacks.. having issue... cant seem catch rejected error.... have no idea whats wrong here code
the promise:
function exec(cmd, params, options) { return new promise(function(resolve, reject) { server.send(cmd, params || {}, options || [], function (err, res, rawres) { if (err) reject(err.msg); resolve(res); }); }); }
the execution:
exec("login", { // login client_login_name: conf.user, client_login_password: conf.pass }).then(exec("use", { // select server sid: 4 })).then(exec("clientupdate", { // change nickname client_nickname: conf.nick })).catch(function (err) { log.error(err); });
the error(server not running) error in reject(err.msg)
:
unhandled rejection error: server not running @ object.ensureerrorobject (d:\dev\node\a90s\node_modules\bluebird\js\main\util.js:261:20) @ promise._rejectcallback (d:\dev\node\a90s\node_modules\bluebird\js\main\promise.js:465:22) @ d:\dev\node\a90s\node_modules\bluebird\js\main\promise.js:482:17 @ object.cb (d:\dev\node\a90s\modules\ts3interface.js:20:26) @ lineinputstream.<anonymous> (d:\dev\node\a90s\node_modules\node-teamspeak\index.js:170:47) @ lineinputstream.emit (events.js:107:17) @ lineinputstream._events.line (d:\dev\node\a90s\node_modules\node-teamspeak\node_modules\line-input-stream\lib\line-input-stream.js:8:8) @ array.foreach (native) @ socket.<anonymous> (d:\dev\node\a90s\node_modules\node-teamspeak\node_modules\line-input-stream\lib\line-input-stream.js:36:9) @ socket.emit (events.js:107:17) @ readableaddchunk (_stream_readable.js:163:16) @ socket.readable.push (_stream_readable.js:126:10) @ tcp.onread (net.js:538:20)
thanks in advance :)
you must pass callbacks .then
, not promises (that exec
invocations return).
exec("login", { // login client_login_name: conf.user, client_login_password: conf.pass }).then(function(loginresult) { // select server return exec("use", { sid: 4 }); }).then(function(selectresult) { // change nickname return exec("clientupdate", { client_nickname: conf.nick }); }).catch(function (err) { log.error(err); });
Comments
Post a Comment