Nodejs'de sunucu kodunu yazıyor ve Parse javascript sdk'yi kullanıyoruz. Çoğunlukla çeşitli Parse nesnelerini getirmemiz veya güncellememiz gerekir. Örneğin, bir kullanıcı adı 'Örnek' ile bir kullanıcı alın. Ayrıştırma bulma/kaydetme işlemleri eşzamanlı olarak nasıl yapılır?
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);
}
});
}
Bu fonksiyon
başka işlevi tarafından adlandırılabilir: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
sorun bulmak/ilk operasyonlar uyumsuz olarak çalışır çünkü tanımsız sonuçlar elde olması nedeniyledir. FetchUser() işlevinin yalnızca bulma/ilk işlem başarılı/tamamlandığında döndüğünden emin olmanın herhangi bir yolu var mı?
neden sadece fetchUser ve test için bir geri arama vermeyin? Daha iyi okunabilir bir koda sahip olmak istiyorsanız, geri aramalar yerine sözler kullanın. – Tobi
Senkronize olmayan işlemleri senkronize yapamazsınız. Javascript ile yapılamaz. Denemeyi bırak. Geri aramalar veya vaatlerle eşzamansız bir şekilde nasıl programlanacağınızı ya da Java gibi engelleme/zincirleme bir ortama geçiş yapmayı öğrenin. Bu işlem, iş parçacığı içinde (bu mimarinin ilişkili özellikleriyle) engelleme/senkronize etme gibi şeyler yapmanıza olanak tanır. – jfriend00
Gerçekten javascript için yeni. Bazen, sadece 'mümkün değil' de yeterince iyi bir cevaptır. Teşekkürler. :) – Paagalpan