课堂上的承诺和噩梦Javascript

课堂上的承诺和噩梦Javascript,javascript,node.js,class,promise,nightmare,Javascript,Node.js,Class,Promise,Nightmare,所以我有一个非常好的噩梦代码,我把它放到了一个类中。但是,它开始抛出承诺错误:-((没有fun()函数,它可以正常工作 类测试{ 构造函数(){ this.init(()=>{ 这个。开始() }) } init(){ 这个噩梦=新的噩梦({ 秀:没错, 打字间隔:20, openDevTools:{ 是的 } }); } 异步启动(){ 等待这个噩梦 .useragent(useragent) .goto(“https://www.yahoo.com") 乐趣(); 异步函数fun(){ 等

所以我有一个非常好的噩梦代码,我把它放到了一个类中。但是,它开始抛出承诺错误:-((没有fun()函数,它可以正常工作

类测试{
构造函数(){
this.init(()=>{
这个。开始()
})
}
init(){
这个噩梦=新的噩梦({
秀:没错,
打字间隔:20,
openDevTools:{
是的
}
});
}
异步启动(){
等待这个噩梦
.useragent(useragent)
.goto(“https://www.yahoo.com")
乐趣();
异步函数fun(){
等着吧。噩梦。去吧https://google.com')
}
}
}

new test().start();
这与承诺或等待没有任何关系。您会收到一个错误,因为
未引用
fun()
中的对象。当您创建一个函数并像使用
fun()
一样调用它时,您会丢失对对象的
引用。请考虑:

类测试{
构造函数(){
this.init()
}
init(){
this.prop=“财产”
}
开始(){
log(“这是乐趣之外的:”,这)
乐趣
函数fun(){
log(“this in fun:,this”)
}
}
}     

新建test().start()
包装您的
等待此消息。噩梦。转到('https://google.com“)
try catch
中,您是否尝试过
等待乐趣();
?如果在函数初始化后移动调用,会发生什么情况?