Welcome to the Linux Foundation Forum!

Correct solution for LFW211 Labs 9.2?

Hello,

I'm going through the Linux Foundation / OpenJS course for certification, Node.JS Applications. I'm on Chapter 9, and doing the Labs Exercise 9.2 (labs-2). Here is the code with which I'm presented —

'use strict'

const { EventEmitter } = require('events')

process.nextTick(console.log, 'passed!')

const ee = new EventEmitter()

ee.emit('error',Error('timeout'))

The exercise then says to...:

Currently the process crashes... Without removing any of the existing code, and without using a try/catch block add some code which stops the process from crashing. When implemented correctly the process should out put passed!.

So here's my solution —

'use strict'
const { EventEmitter } = require('events')

const ee = new EventEmitter()

ee.on('error', () => process.nextTick(console.log, 'passed!'))

ee.emit('error', Error('timeout'))

This works, when I run node index.js, I do get the desired result —

Here's my question — is this a correct solution? I don't use a setTimeout(), either the regular one from JavaScript or the "Promisfied" one from Node.JS, I used an ee.on('error', ...). The exercise also says to do this,...

Without removing any of the existing code, and without using a try/catch block...

I didn't re-write any code, but I did wrap the process.nextTick() line in the ee.on('error', ...) and moved it down below the ee declaration so it would work. Is that correct? Please let me know.

best,

faddah

Categories

Upcoming Training