static handleAsAsync ( action ) {
        let callback = arguments[arguments.length-1];
        let possiblePromise = action.apply(null, Array.prototype.slice.call(arguments, 1) );
        if ( is.promise(possiblePromise) ) {
            possiblePromise
                .then( callback.bind(null, null) )
                .catch( callback.bind(null) );
        }
    }
/**
     * @description Method to provide ability to use for asynchronous actions "async" flow.
     * <br/> Regardless of the action thread used.
     * <br/> <strong> NOTE </strong> Context binding to an action is strongly suggested.
     * <br/> Without binding action will lose the context, as any other callback function.
     * <br/><br/> <strong> NOTE </strong> Assumes the last arguments its async callback
     * @example
     *  const handle = Core.utils.handleAsAsync;
     *  // async flow
     *  handle(action.bind(ctx),a,r,g,u,m,e,n,t,s,(error, result) => {
     *      ... // handle using async callback
     *  });
     * @alias utils.handleAsAsync
     * @see {@link https://www.npmjs.com/package/async|asinc on NPM}
     * @param {function} action - asynchronous action
     * @param {*} ...args - any type and any count of arguments to delegate it in the action
     * @param {function} callback - async callback to use async way
     * @public
     */
@description Method to provide ability to use for asynchronous actions "async" flow.
 Regardless of the action thread used.
  NOTE  Context binding to an action is strongly suggested.
 Without binding action will lose the context, as any other callback function.
@description Method to provide ability to use for asynchronous actions " async " flow . Regardless of the action thread used . NOTE Context binding to an action is strongly suggested . Without binding action will lose the context as any other callback function .
static handleAsAsync ( action ) {
        let callback = arguments[arguments.length-1];
        let possiblePromise = action.apply(null, Array.prototype.slice.call(arguments, 1) );
        if ( is.promise(possiblePromise) ) {
            possiblePromise
                .then( callback.bind(null, null) )
                .catch( callback.bind(null) );
        }
    }
static handleAsAsync ( action ) { let callback = arguments [ arguments . length - 1 ] ; let possiblePromise = action . apply ( null , Array . prototype . slice . call ( arguments , 1 ) ) ; if ( is . promise ( possiblePromise ) ) { possiblePromise . then ( callback . bind ( null , null ) ) . catch ( callback . bind ( null ) ) ; } }
@description Method to provide ability to use for asynchronous actions "async" flow.
@description Method to provide ability to use for asynchronous actions " async " flow .