Tengo una childClass y acceso limitado a la parentClass. Dentro de uno de los métodos childClass necesito invocar un método parentClass, getToken() . getToken() , y el resto de parentClass, se escribe mediante devoluciones de llamada. La clase secundaria está escrita con promesas y async-await.
Sé que es complicado, pero este es el único lugar donde hay problemas en este momento y esto es lo que debemos hacer.
Ejemplo de problema
... try { // getToken is not promisified yet so it doesn't work let tokens = await this.getToken(); refreshToken = tokens.refresh_token; } ...¿Puedo hacer una función "prometedora" personalizada? Algo como,
// This isn't correct even if the idea were ok async promisify(function) { return new Promise((resolve, reject) => { function((err, data) => { if (err) reject(err); else resolve(data); }) }) }Luego en mi código escribe:
... try { // getToken is maybe promisified let tokens = await this.promisify(this.getToken()); refreshToken = tokens.refresh_token; } ...O se vería algo como
const util = require('util'); const asyncGetToken = util.promisify(parentClass.getToken); ... try { let tokens = await asyncGetToken(); refreshToken = tokens.refresh_token; } ...Si es así, ¿tendría la instancia correcta de childClass para trabajar?
Sé que es complicado, pero gracias por cualquier consejo.