code: function load(ctx, loader, params, onUpdate) {
      // Create an object that holds the loadedData promise, so we can compare on handleLoadResult, and ignore promises that
      // did not originate from the very last load that happened.
      const loadedData = {
          loading: true, // Start off "loading", but once the promise below resolves, this value is false.
      };
  
      loadedData.promise = loader(params, handleLoadResult.bind(null, ctx, loadedData, onUpdate, undefined)) // Do not affect loading status.
                                    .then(handleLoadResult.bind(null, ctx, loadedData, onUpdate, false, undefined)) // Success, not loading.
                                   .catch(handleLoadResult.bind(null, ctx, loadedData, onUpdate, false)); // Failed, not loading.
  
      // Return promise for data.
      return loadedData.promise;
  }
docs: private stuff ----------------------------------------------------------------------------------