Javascript MVC:如何记录model';控制器中的属性';s构造函数,假定模型';是否异步获取s属性?
我正在尝试在我的应用程序中应用MVC设计模式 但是,我不确定为什么Javascript MVC:如何记录model';控制器中的属性';s构造函数,假定模型';是否异步获取s属性?,javascript,model-view-controller,Javascript,Model View Controller,我正在尝试在我的应用程序中应用MVC设计模式 但是,我不确定为什么控制器的构造函数中的this.logActivites()的输出是未定义的。不过,在加载页面后,我可以从控制台轻松地执行app.logActivities() 是否因为(出于某种原因)数据尚未提取?我怎样才能解决这个问题 类模型{ 构造函数(){ 这是getActivities() 。然后(json=> this.activities=json.activities ) } 异步getActivities(){ 常量url=htt
控制器
的构造函数中的this.logActivites()
的输出是未定义的
。不过,在加载页面后,我可以从控制台轻松地执行app.logActivities()
是否因为(出于某种原因)数据尚未提取?我怎样才能解决这个问题
类模型{
构造函数(){
这是getActivities()
。然后(json=>
this.activities=json.activities
)
}
异步getActivities(){
常量url=https://jsonplaceholder.typicode.com/todos/1'
const response=等待获取(url)
const json=await response.json()
返回json
}
}
类视图{
构造函数(){}
}
类控制器{
构造函数(模型、视图){
this.model=model
this.view=视图
这是logActivities()
}
日志活动(){
console.log(this.model.activities)
}
}
app=新控制器(新模型(),新视图())
它记录未定义的日志,因为在该接合点它是。
这里我展示了一个记录{}
的示例,这样您就可以看到它是这样的
例如,如果您的fetch
从未像fetch一样返回(“HTTPS://iambadfever.gone/I/do/not/exist”)
我放了一个可能的零钱
/*jshint esversion:8*/
类模型{
构造函数(){
这是getActivities()
。然后(json=>
this.activities=json.activities
//可能是这个?
这是logActivities();
);
}
异步getActivities(){
常量url=https://jsonplaceholder.typicode.com/todos/1';
const response=等待获取(url);
const json=await response.json();
返回json;
}
日志活动(){
console.log(this.activities);
}
}
类视图{
构造函数(){}
}
类控制器{
构造函数(模型、视图){
this.model=模型;
this.view=视图;
//这是logActivities();
}
}
设m=新模型();
控制台日志(m);
m、 活动={};
设v=新视图();
控制台日志(v);
设app=新控制器(m,v)代码>如何修复它?在数据获取完成后调用getActivities?为什么您会假设数据获取将在时间=0时完成其工作?如果服务器上刚开始一些消耗资源的工作(备份或其他什么),数据提取需要10秒怎么办?这是一篇非常快的文章,可能还需要进行其他改进