已经解决!!
18 updatePass: function(passwd) {
19 var status;
20 this.updateAttributes({passwd: passwd}).on('success', function(msg){
21 status = "success";
22 console.log(msg);
23 console.log("statusstatus:"+status);
24 return status;
25 }).on('failure', function(err){
26 status = "error";
27 console.log(err);
28 console.log("statusstatus:"+status);
29 return status;
30 });
31 }
然后在另一个文件里调用了该函数:
247 status = model.updatePass(newPasswd);
248 console.log(status);
这里我始终无法获得status的值,因为248行的打印始终是在updatePass之前完成。我该怎么办
4 回复
同学你使用node的方法就是错误的。node是异步的~~
updatePass: function(passwd,callback) {
var status;
this.updateAttributes({passwd: passwd}).on('success', function(msg){
status = "success";
console.log(msg);
console.log("statusstatus:"+status);
callback(null, status);
}).on('failure', function(err){
status = "error";
console.log(err);
console.log("statusstatus:"+status);
callback(err);
});
}
model.updatePass(newPasswd,function(err,status){
console.log(status);
});