【发布时间】:2021-12-10 05:21:01
【问题描述】:
我有一个错误,当我将 handleRenderPage 方法调用到异步方法时,我得到了错误: model.js:83 Uncaught (in promise) TypeError: this.handleRenderPage is not a function
我使用 MVC 编写待办事项项目,在模型类中我使用 handleRenderPage 方法发送待办事项列表数组,我使用 downloadTask 从服务器获取待办事项列表并将其发送到视图类 这是异步函数:
downloadTask = async() => {
const url = 'http://localhost:9090/download';
const res = await fetch(url);
const data = await res.json();
this.tasksList = data;
console.log(this.tasksList);
//down is the method
this.handleRenderPage(this.tasksList);
}
我在课堂外调用了这个函数:
downloadBtn.addEventListener('click', () => {
const model = new Model();
model.downloadTask();
})
当用户点击下载 btn 应用程序时应该从服务器呈现待办事项列表
【问题讨论】:
-
嗨!请使用 minimal reproducible example 来更新您的问题,以展示问题,最好是使用 Stack Snippets(
[<>]工具栏按钮)的 runnable 问题; here's how to do one。 (您需要使用setTimeout或其他东西来模拟ajax,链接中的详细信息。) -
旁注:由于你没有对
downloadTask返回的承诺做任何事情,你需要确保你永远不允许它拒绝它的承诺。简单的方法是将所有代码包装在try/catch中,并在catch块中处理任何错误。 -
请发布您的
Model课程的完整代码。它有handleRenderPage方法吗? -
是的:```bindRenderPage = (handleRenderPage) => { this.handleRenderPage = handleRenderPage; this.filterTasks(this.status); };
标签: javascript model-view-controller