我的班级看起来像javascript和执行功能的顺序
function classUser() {
var userName;
var firstName;
var lastName;
var sessionid;
}
classUser.prototype.set_user_name = function (user_name) {
this.userName = user_name;
}
classUser.prototype.set_first_name = function (first_name) {
this.firstName = first_name;
}
classUser.prototype.set_last_name = function (last_name) {
this.lastName = last_name;
}
classUser.prototype.get_curr_session = function() {
return this.sessionid;
}
classUser.prototype.save = function() {
$.ajax({
type: "POST",
url: "http://myapihost.com:8080/api/1.0/user/",
data: JSON.stringify(this),
dataType: "json",
success: function (apiResponse) {
var currSessionID = apiResponse.sessionId;
this.sessionid= currSessionID;
},
error: function (apiResponse) {
alert("error : " + apiResponse);
this.sessionid= "Error";
}
});
}
我有时叫他们为
var User = new classUser();
User.set_first_name(userFirstName);
User.set_last_name(response.last_name);
User.set_user_name(response.username);
User.save();
var currSessionID = User.get_curr_session();
,get_curr_session被成功之前调用:调用。
问题: 我试着从成功本身返回sessionid,以便save()函数完成这项工作。这不起作用。因此我分裂了2个功能。
我可以在一次通话中完成吗?如果我使用2个功能 - 我如何确保它始终有效。
我实际上可以把currSessionID分配给成功,但是破坏了类的神圣性。我已经看到其他解决方案,如使用“完成”,不知道这是否会在这里帮助。
=======================================
我修改了代码如下
classUser.prototype.save =函数(回调){
$.ajax({
type: "POST",
url: "http://myapihost.com:8080/api/1.0/user/",
data: JSON.stringify(this),
dataType: "json",
success: function (apiResponse) {
var currSessionID = apiResponse.sessionId;
this.sessionid= currSessionID;
callback(null, currSessionID);
},
error: function (apiResponse) {
alert("error : " + apiResponse);
this.sessionid= "Error";
callback("error", null);
}
});
}
当我打电话
User.save(mycallback);
function mycallback(error, sessId){
if(error) {
console.log("Some error occurred. Check code");
return;// Something went wrong
} else {
console.log("Session : " + sessId);
}
}
现在这是好?
感谢 阿贾伊
[如何从AJAX调用返回响应?](http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-ajax-call) – Phil
我不认为'classUser'中的'var'声明做你认为他们做的事。 – user2357112
是什么意思?他们完全按照我的意愿去做:) –