app.reg(regInfo, function(err) {
if (err) {
toast(err);
return;
}
toast('注册成功');
// 注册成功,继续处理业务
});
app.reg = function(regInfo, callback) {
if (regInfo.account.length < 5) {
return callback('用户名最短需要 5 个字符');
}
if (regInfo.password.length < 6) {
return callback('密码最短需要 6 个字符');
// 向服务器发送注册请求
user.signUp(regInfo, {
success: function(user) {
// 注册成功,可以使用了.
},
error: function(user, error) {
// 失败了
}
});
return callback();
};
问题: 如何在服务器返回失败以后再返回callback('服务器注册失败')
?
谢谢大家!
1
will0404 2015-10-16 10:10:37 +08:00
```
app.reg = function(regInfo, callback) { if (regInfo.account.length < 5) { return callback('用户名最短需要 5 个字符'); } if (regInfo.password.length < 6) { return callback('密码最短需要 6 个字符'); // 向服务器发送注册请求 user.signUp(regInfo, { success: function(user) { // 注册成功,可以使用了. }, error: function(user, error) { // 失败了 return callback(); } }); }; ``` |
2
will0404 2015-10-16 10:12:33 +08:00
怎么不支持 markdown 你要的不是发 callback 放到回调里就好了吗
|
3
chairuosen 2015-10-16 10:14:05 +08:00 1
把倒数第二行 return callback()那行删了
user.signUp 的 success 和 error 里分别调 callback |
4
bru OP @chairuosen OK, 解决了,我之前也是在回调里面用了 return callback(); 直接调 callback 就可以了,谢谢~~
|
5
Altman 2015-10-16 11:11:09 +08:00
用用 Promise 吧, 实在看不下去 callback 回调了
|
7
morethansean 2015-10-16 11:34:42 +08:00
没有 callback 了。
app.reg = function (regInfo) { if (regInfo.account.length < 5) { return Promise.reject('用户名最短需要 5 个字符'); } if (regInfo.password.length < 6) { return Promise.reject('密码最短需要 6 个字符'); return user.signUp(regInfo); }; // 使用 app.reg(regInfo) .then((ret) => { // 成功了 }) .catch((ex) => { // 失败了 }); // es7 try { await app.reg(regInfo); } catch (ex) { // 失败了 return; } // 成功,继续业务代码 |
8
malcolmyu 2015-10-16 11:45:39 +08:00
要么使用回调要么使用 promise
|