我在客戶端使用javascript和服務器端的node.js,實際上我試圖對輸入字段進行遠程驗證,結果必須是布爾值,它應該基於服務器調用,我的代碼如下,如何將異步調用轉換爲JavaScript中的同步?
jQuery.validator.addMethod("remoteValidation", function(value, element) {
var accountName = $("#accountName").val();
var accountType = $("#accountType").val();
var valid = this.Validation(accountType,accountName);
//returning undefined becoz return statement executing before server side execution
return valid;
}, "Entered email or username already exists");
this.validation = function(accountType,accountName,cb){
var valid =null;
ss.rpc('AccountsManagement.userNameChecker',accountType,accountName,function(res) {
// res will return boolean
valid = res;
});
//valid is null becoz this line is executing before valid = res line.
return valid;
};
我的服務器端代碼:
services.imAccountsService.getAllImAccounts(accountType,accountName,
function(err,result){
if(err){
return;
}
if(result == null){
res(true);
}
else{
res(false);
}
});
我的問題是異步執行,如何使代碼synschronous在這種情況下..
什麼是'ss'?如果有該方法的文檔,您應該考慮查看,因爲它是異步方法。 –
@Quintin ss.rpc是一種異步方法。它是節點js – user2587222
套接字流是否包含在默認的node.js包中?如果是這樣,我不知道。 –