Búsqueda de sitios web

typescript - el valor de abajo fue evaluado justo ahora


Tengo un método que devuelve un Observable de la siguiente manera:

public myMethod(params): Observable<CertainType> {
    // some code goes here;
    return defer(() => this.customHttp.request<XML>(config, ctx)).pipe(
    map(
            (xmlRes: string) => {
                const xmlHandler = new strongsoap.soap.XMLHandler();
                const rawSFResponse = xmlHandler.xmlToJson(null, xml, null);
                const res = rawSFResponse["Body"]["SFResponse"]["SFResult"];
                // more code goes here;
            }
        )
    )
}

El problema con este fragmento de código es que recibo un error en la consola que dice No se puede leer la propiedad 'SFResult' de undefined. Y si intento registrar en la consola el objeto rawSFResponse, se imprime, pero cuando hago clic en él dice "el valor a continuación se evaluó justo ahora".

Hasta donde entiendo, esto sucede porque esta declaración res=rawSFResponse["Body"]["SFResponse"]["SFResult"]; se ejecuta antes de que el objeto res esté completamente formado, es decir, en el momento en que se ejecuta, el contenido del campo SFResult todavía está indefinido. ¿Es correcto? Si es así, entonces, ¿cuál sería la mejor manera de esperar a que se forme? Tal vez tengo que envolver la función de análisis en una promesa y luego usar await sobre ella?