我在弄清楚如何构造一个辅助函数时遇到麻烦,该辅助函数可以在异步的情况下用作条件的一部分。
我定义了两个Parse Cloud Code函数,用于检查用户是否具有有效的帐户并以略有不同的方式进行响应,因此我想创建一个第三个帮助函数,该功能仅检查用户是否具有有效的帐户。这是三个函数的样子:
// Check if user account is active before allowing saves.
Parse.Cloud.beforeSave("Item", function(request, response) {
if (isActiveUser(request.user)) {
resonse.success();
}
else {
response.error("Inactive user");
}
});
// Checks if calling user account is active.
Parse.Cloud.define("isActive", function(request, response) {
if (isActiveUser(request.user)) {
response.success(true);
}
else {
response.success(false);
}
});
// Returns true if user is active.
function isActiveUser(user) {
var query = new Parse.Query(User);
query.first({
success: function(user) {
if (user !== null && typeof user === 'object') {
return true;
}
else {
return false;
}
}
});
}
isActiveUser函数的目的是返回true或false,但是正如Jaromanda指出的那样,它根本不返回任何内容。我不确定如何以更有效的事件驱动方式构造此结构。我希望有人可以帮助这个老练的PHP程序员尝试闯入JS :)
最佳答案
如何在函数中使用回调-“ isActiveUser()”
改写为:
function isActiveUser(user, callback) {
var query = new Parse.Query(User);
query.first({
success: function(user) {
if (user !== null && typeof user === 'object') {
callback(" Active ",true);
}
else {
callback(" Non-Active ",false);
}
}
});
}
并调用此函数:
...
isActiveUser( your_user_item , function(err,flag){
if(flag == true){
// This User is active
}
else{
// Non active , show some msg
}
});