Skip to content

Commit

Permalink
fix: emit 'error' event causes an exception to be raised
Browse files Browse the repository at this point in the history
  • Loading branch information
Nicolas Coulon authored and nicocoul committed Jan 17, 2023
1 parent 99aa36f commit 3ab8498
Show file tree
Hide file tree
Showing 6 changed files with 15 additions and 8 deletions.
2 changes: 1 addition & 1 deletion examples/events/broker.js
Expand Up @@ -8,4 +8,4 @@ broker.events.on('lost-channel', (channel) => console.log('lost-channel', channe
broker.events.on('schedule', (request) => console.log('schedule', request))
broker.events.on('execute', (request) => console.log('execute', request))
broker.events.on('executed', (request) => console.log('executed', request))
broker.events.on('error', (request) => console.log('error', request))
broker.events.on('failed', (request) => console.log('failed', request))
2 changes: 1 addition & 1 deletion examples/events/client.js
Expand Up @@ -4,7 +4,7 @@ const client = ya.client(ya.transports.tcp(8005, 'localhost'))

client.events.on('execute', (request) => console.log('execute', request))
client.events.on('executed', (request) => console.log('executed', request))
client.events.on('error', (request) => console.log('error', request))
client.events.on('failed', (request) => console.log('failed', request))

for (let i = 0; i < 50; i++) {
client.remote.replyWithDelay(i, 1000).then(console.log)
Expand Down
2 changes: 1 addition & 1 deletion examples/events/server.js
Expand Up @@ -6,4 +6,4 @@ const server = ya.server(ya.transports.tcp(8005, 'localhost'), modulePath)
server.events.on('schedule', (request) => console.log('schedule', request))
server.events.on('execute', (request) => console.log('execute', request))
server.events.on('executed', (request) => console.log('executed', request))
server.events.on('error', (request) => console.log('executed', request))
server.events.on('failed', (request) => console.log('failed', request))
2 changes: 1 addition & 1 deletion lib/brokers/rpc.js
Expand Up @@ -268,7 +268,7 @@ function create () {
if (d.result !== undefined) {
events.emit('executed', request)
} else {
events.emit('error', request)
events.emit('failed', request)
}
}
const reqChannel = channels.get(request.channelId)
Expand Down
2 changes: 1 addition & 1 deletion lib/clients/rpc-client.js
Expand Up @@ -44,7 +44,7 @@ function addRpcClientRole (channel, events) {
} else if (resp.progress && request.onProgress) {
request.onProgress(d.progress)
} else if (resp.error) {
events.emit('error', request.request)
events.emit('failed', request.request)
request.onResult(new Error(d.error), undefined)
requests.remove(d.id)
} else if (resp.status && request.onStatus) {
Expand Down
13 changes: 10 additions & 3 deletions lib/clients/rpc-server.js
Expand Up @@ -84,11 +84,18 @@ function create (channel, modulePath, options = {}) {
load = 0
})
worker.on('message', data => {
if (data.result !== undefined || data.error !== undefined) {
if (data.result !== undefined) {
delete data.request
load--
events.emit(
data.result !== undefined ? 'executed' : 'error',
{ ...data.request, pid: worker.pid, result: data.result, error: data.error })
'executed',
{ ...data.request, pid: worker.pid, result: data.result })
} else if (data.error !== undefined) {
delete data.request
load--
events.emit(
'failed',
{ ...data.request, pid: worker.pid, error: data.error })
}
processQueue()
channel.write({ c: COMMANDS.RPC_EXECUTE, ...data })
Expand Down

0 comments on commit 3ab8498

Please sign in to comment.