Extraer el resultado de un suscribe dentro de una validación angular

Estoy tratando de pasar el resultado obtenido en el suscribe pero no lo he logrado, ya he usado varias opciones y no he podido con ninguna.

La función esta correcta el valor dentro del suscribe es el correcto pero no se como sacarlo de allí.

Lo he intentado de las siguientes formas:

Forma 1:

  referenciaValidator(control: FormControl) {     const referencia = control.value;     this.pagosOnlineService.validarReferencia(referencia)       .subscribe(         data => {           if (data['estado_validacion']) {             this.numero_referencia.errors.invalidReferencia = false;           } else {             this.numero_referencia.errors.invalidReferencia = true;           }         },         error => {           this.numero_referencia.errors.invalidReferencia = true;         }       );   } 

Forma 2:

  referenciaValidator(control: FormControl) {     const referencia = control.value;     let estado_validacion;     this.pagosOnlineService.validarReferencia(referencia)       .subscribe(         data => {           estado_validacion = data['estado_validacion'];         },         error => {           estado_validacion = false;         }       );     if (estado_validacion) {       return {invalidReferencia: !estado_validacion};     } else {       return null;     }   } 

Forma 3:

  referenciaValidator(control: FormControl) {     const referencia = control.value;     let estado_validacion;     this.pagosOnlineService.validarReferencia(referencia)       .subscribe(         data => {           estado_validacion = data['estado_validacion'];           if (estado_validacion) {             return {invalidReferencia: !estado_validacion};           } else {             return null;           }         },         error => {           return {invalidReferencia: true};         }       );   } 

Ninguna funciona, si alguien sabe como lo puedo hacer les agradezco.