Class UnhandledRejectionTracker

java.lang.Object
org.mozilla.javascript.UnhandledRejectionTracker

public class UnhandledRejectionTracker extends Object
This class is responsible for handling tracking of unhandled Promise rejections. These come up when a Promise is either rejected or an exception is thrown and there is no "catch" handler set up. There is one of these tracker objects for each Context class.

Different frameworks will choose different ways to handle unhandled rejections. As a result, Rhino does nothing by default.

However, if "trackUnhandledPromiseRejections" is called on the Context object, then Rhino will track them in this object. It is the responsibility of the product embedding Rhino to periodically check for unhandled rejections in this class and either remove them or terminate the script and allow the context and its tracker to be garbage- collected.

Note that if "trackUnhandledPromiseRejections" is set, and rejections are not handled, then Promise objects will accumulate in this object and cause a memory leak.

  • Constructor Details

    • UnhandledRejectionTracker

      public UnhandledRejectionTracker()
  • Method Details

    • process

      public void process(Consumer<Object> handler)
      Iterate through all the rejected promises that have not yet been handled. As each promise is handled by this method, it is removed from this tracker and will not appear again. This is useful for delivering unhandled promise notifications to users one time via a callback.
    • enumerate

      public List<Object> enumerate()
      Return a collection of all of the results of any unhandled rejected promises. This does not remove unhandled promises from the collection, but reports the current state. It is useful for command-line tools.
      Returns:
      a read-only collection of promise results. To clear them, call "process".