Tengo un método de clase vue.js que necesita llamar a una función asíncrona usando await :
methods: { playRecording(path) { return await this.getAudioUrl(path) } }Esto da como resultado el siguiente error:
Palabra reservada inesperada 'esperar'.
Para corregir este error, volví a escribir el código usando async como tal:
methods: { playRecording : async() => { console.log(this) // `this` evaluates to `undefined` var path = '/recordings/' + this.book return await this.getAudioUrl(path) } } Si bien esto soluciona el error de await anterior, da como resultado un nuevo error:
No se pueden leer las propiedades de undefined (leyendo 'libro')
this evalúa como undefined
¿Cómo puedo recuperar el acceso a this dentro de un método de clase marcado con async ?
El método de llamada debe definirse como tal:
async playRecording () {Esto es incorrecto:
playRecording : async() => {