我正在扩展一个类,并为其添加一些属性和方法:
class Cmp extends ConsentString {
constructor(result = null) {
super(result);
this.setCmpId(52);
}
loaded() {
return this.cmpLoaded;
}
}
然后我要创建一个函数,该函数返回一个承诺以创建该类的新实例:
export default function initCmp(loaderData) {
return new Promise((resolve, reject) => {
const cmp = new Cmp();
console.log('testing', cmp.loaded()); // undefined!
if (!cmp) reject();
console.log('CMP: ', cmp); // this logs as you would expect apart from there are non of the methods with which I extend.
resolve(cmp);
});
我能够访问原始类中的方法和属性,以及扩展中的任何属性,但不能访问任何方法-它们都是未定义的。
我尝试了很多事情,例如bind(this)并将方法名称添加到构造函数中,似乎没有任何作用。
我还觉得此错误是作为我添加的Babel Transform Runtime的一部分引入的,以便能够使用async / await。
编辑:ConsentString类在这里https://github.com/InteractiveAdvertisingBureau/Consent-String-SDK-JS/blob/master/src/consent-string.js
更新:我试图在不扩展类的情况下运行该流程,而是创建一个新类,但一切正常-因此问题必须与扩展有关,但我不确定那是什么,这仍然是问题。 / p>
更新2:当我从babel中删除两个插件时:@babel/plugin-transform-runtime
和transform-async-to-generator
一切正常。
请帮助!
答案 0 :(得分:0)
(由于与@JamesLeClair聊天)我包括babel-polyfill而不是运行时已解决了该问题。
这不是完美的解决方案,因为我正在图书馆工作,但现在让一切保持运转!