Eli*_*eth 4 jquery promise deferred requirejs
var viewmodel = service.createCustomer(); 是我调用requirejs模块的方式.
我如何创建一个延迟对象,我的createCustomer返回在服务调用中创建的CreateCustomerViewModel?
define(['viewmodels/CreateCustomerViewModel'],function (CreateCustomerViewModel) {
function createCustomer() {
$.getJSON('Customer/Create')
.done(function (response) {
return new CreateCustomerViewModel(response);
})
.fail(function (error) {
alert(error);
});
}
return {
createCustomer: createCustomer
};
});
Run Code Online (Sandbox Code Playgroud)
.then()而不是.done()修改有效负载.createCustomer方法返回修改后的有效负载.您的模块定义变为:
function createCustomer() {
return $.getJSON('Customer/Create')
.then(function (response) {
return new CreateCustomerViewModel(response);
});
}
return {
createCustomer: createCustomer
};
Run Code Online (Sandbox Code Playgroud)
用于:
customerCreator.createCustomer()
.done(function (model) {
// yay! let's use this model
})
.fail(function () {
console.error("Cannot create customer");
});
Run Code Online (Sandbox Code Playgroud)
您还应该尽可能地将.fail()处理移到应用程序的外部,以便错误消息中的措辞可以具有更准确的上下文.
PS作为一个挑剔者,您不应该使用POST请求而不是GET来创建实体吗?
| 归档时间: |
|
| 查看次数: |
5585 次 |
| 最近记录: |