code: function asyncResolve(resolveParams, resolveOptions) {
          router.allowPageChange = false;
          var resolvedAsModal = false;
          if (resolveOptions && resolveOptions.context) {
            if (!route.context) { route.context = resolveOptions.context; }
            else { route.context = Utils.extend({}, route.context, resolveOptions.context); }
            options.route.context = route.context;
          }
          ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) {
            if (resolveParams[modalLoadProp]) {
              resolvedAsModal = true;
              var modalRoute = Utils.extend({}, route, { route: resolveParams });
              router.allowPageChange = true;
              router.modalLoad(modalLoadProp, modalRoute, Utils.extend(options, resolveOptions));
            }
          });
          if (resolvedAsModal) { return; }
          router.load(resolveParams, Utils.extend(options, resolveOptions), true);
        }
docs: Async