即使在使用setTimeout之后,也从meteor中的方法返回json

即使在使用setTimeout之后,也从meteor中的方法返回json,json,meteor,Json,Meteor,我正在创建一个方法,该方法将客户保存在数据库中,并将json格式的响应返回给调用方法。这是我的密码: Meteor.methods({ 'Registration': function() { name = "Hardik"; contact = ""; email = "admin@gmail.com"; password = "123"; Meteor.setTimeout(function() {liveDb.db.query('In

我正在创建一个方法,该方法将客户保存在数据库中,并将json格式的响应返回给调用方法。这是我的密码:

    Meteor.methods({
    'Registration': function() {
    name = "Hardik";
    contact = "";
    email = "admin@gmail.com";
    password = "123";
    Meteor.setTimeout(function() {liveDb.db.query('Insert Into Customer (Customer_Name, Customer_Contact, Customer_Password, Customer_Email) values ("'+name+'","'+contact+'","'+password+'","'+email+'")',
        function(error, result){
            if(result!='undefined' && result.affectedRows>0)
            {
                var r = {message : "Customer Added Successfully.", statuscode: "200", customerid : result.insertId};
                return r;
            }
            else
            {
                var r = {message : "Something Went Wrong", statuscode: "400", error : error};
                return r;
            }   
        });},1000);
    }
});
但当我试图在客户机中获取返回值时,却一无所获 客户端代码:

Meteor.call('Registration', function (error, result) {
        console.log(result);
});

问题是您试图从异步回调返回响应


这个问题的答案已经在这里给出了

我认为,您的调用是异步的,所以您会在一段时间后得到响应,而且您是从回调方法返回的,而不是从原始方法返回的。由于异步,可能会重复调用。让我检查一下,即使在使用setTimeout之后,我也面临同样的问题。你能解释一下超时的原因吗?