我们在 nodejs 中编写服务器代码并使用 Parse javascript sdk。通常我们需要获取或更新各种 Parse 对象。例如,获取用户名为“Example”的用户。
function fetchUser(username)
{
var User = Parse.Object.extend("User");
var query = new Parse.Query("User");
query.equalTo("username",username);
query.first({
success: function(results) {
console.log("Successfully retrieved " + results.length + " scores.");
return results;
},
error: function(error) {
console.log("Error: " + error.code + " " + error.message);
}
});
}
该函数可能被其他函数调用:
function test()
{
var user = fetchUser("example");
console.log(user); // would often print undefined
return user;
}
function top()
{
// some code
var user = test();
//some code
}
// and the function top() mmight be called by some other functions
问题是我会得到未定义的结果,因为 find/first 操作是异步运行的。有没有办法确保 fetchUser() 函数仅在查找/第一次操作成功/完成时返回?