Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...


Warning

This is for Profound.js version 5 only, and is unsupported in version 6 and newer! For Profound.js version 6 and newer, please refer to the Promises documentation page. 


Traditional JavaScript and Node.js API will utilize the concept of asynchronous callbacks for virtually every input/output operation. It is a common pattern for Node.js API. Whether it's reading a disk file, accessing a database table, or calling a web service, the results are not directly returned to the caller; instead, they are passed into a separate function referred to as a callback.

Because of JavaScript's design, the default way to "freeze" a computation and have the "rest of it" execute later (asynchronously) is to put "the rest of it" inside of a callback function.

For certain types of applications, this can be quite useful and performant; however, it also creates the problem more commonly known as Callback Hell. A lot of code ends up looking like this:

...

Coding business applications in a top-down manner is more intuitive, especially if you come from an IBM i a business application development background, and have used languages like RPG, CL, COBOL, and CLJava

To combat this problem and help eliminate Callback Hell, Profound.js integrates a component called Fibers. Through Profound.js Fibers, you can code input/output operations in a familiar top-down manner. All Profound.js input/output API utilize Fibers internally. You can also call any traditional asynchronous Node.js API in a top-down manner through our simple to use pjs.fiber.wrap() and pjs.fiber.run() API.

With Fibers, even though you will be coding your applications in a simple top-down manner, asynchronous calls will still happen behind the scene. This ensures that your Node.js applications continue to perform and scale well. The Node.js event loop is not blocked when Fibers is used.

Video Tutorial

Section


Column
width25%

Widget Connector
width320
urlhttps://www.youtube.com/watch?v=datt2wCiROI
height180


Widget Connector
width320
urlhttps://www.youtube.com/watch?v=BqoLkuQ6zvQ
height180


Column
width25%

Widget Connector
width320
urlhttps://www.youtube.com/watch?v=swW0EAXVrlQ
height180


Column
width50%