gpt4 book ai didi

javascript - Vanilla JS MVC -- AJAX 成功时从模型通知 Controller

转载 作者:行者123 更新时间:2023-11-28 17:45:51 31 4
gpt4 key购买 nike

我正在努力开发我的第一个普通 JS MVC 应用程序。我的模型向服务器发出 AJAX 请求...然后 Controller 更新 View ,但它不会等待 AJAX promise 解析,因此它只是更新 View 而不进行任何操作。如何通知 Controller 异步解析?

Controller :

function DeadController() {
this.model = new DeadModel();
this.view = new DeadView();
this.updateView();
}
DeadController.prototype.updateView = function() {
this.view.render(this.model.data);
}

型号:

function DeadModel() {
this.uri = 'api' + window.location.pathname;
this.data = this.getResponse(this.uri);
}
DeadModel.prototype.getResponse = function(uri) {
$.get(uri, (response) => {
return response;
});
}

最佳答案

getResponse()没有返回任何值。当返回值时,该值应该是一个 jQuery Promise 对象,返回值 $.get()

DeadModel.prototype.getResponse = function(uri) {
return $.get(uri); // `return` the jQuery promise object
}

DeadController.prototype.updateView = function() {
this.model.data // jQuery promise object returned from `$.get()`
.then(this.view.render) // pass response data to `this.view.render`
.fail(function(err) { // handle error
console.error(err)
})
}

关于javascript - Vanilla JS MVC -- AJAX 成功时从模型通知 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46741946/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com