【问题标题】:Need callback returns multiple values in nodejs需要回调在nodejs中返回多个值
【发布时间】:2014-11-03 17:35:51
【问题描述】:

我想在我的回调函数中有多个值

myfunction(i,function(err,result){
  console.log(JSON.parse(JSON.strigify(result)));   
 ****//i need value here..****


});
function myfunction(i,callback) {
/* my some stuff */
var callBackString= new Array();
                        callBackString['value1']=value1;
                        callBackString['value2']= value2;
                        callBackString['value3']= value3;
                        callback(null,callBackString);

};

我将 callBackString 作为数组返回..,

谁能告诉我怎么做

谢谢

【问题讨论】:

  • 问题出在哪里?
  • 我无法获取返回值
  • 尝试使用var callBackString = {}。您正在像使用对象一样使用数组,因此将其设为一个。当您使用 JSON.stringify() 序列化数组时,那些非数组属性会丢失。
  • stringify 的错字?你在那里省略了n

标签: javascript node.js


【解决方案1】:

你应该使用一个对象来代替:

function myfunction(i, callback) {
  var callBackString = {};
  callBackString.value1 = value1;
  callBackString.value2 = value2;
  callBackString.value3 = value3;
  callback(null, callBackString);
}

那么接收端:

myfunction(i, function(err, result) {
  var value1 = result.value1;
  var value2 = result.value2;
  var value3 = result.value3;

  console.log(JSON.parse(JSON.strigify(result)));   
});

【讨论】:

  • 回调中的最后一行是不必要的。如果你想复制数据,它应该是第一个。
【解决方案2】:

以下应该有效:

function myfunction(i, callback) {
  // ...
  // Returns an Array
  return callback(null, [value1, value2, value3])
}

function myfunction2(i, callback) {
  // ...
  // Returns an Object
  return callback(null, {value1: value1, value2: value2, value3: value3})
}

【讨论】:

    【解决方案3】:

    试试这个

    希望有效果

    myfunction(i,function(err,value1,value2,value3){
      console.log(JSON.parse(JSON.strigify(result)));   
     ****//i need value here..****
    
    
    });
    
    
    function myfunction(i,callback) {
    /* my some stuff */
    var callBackString= new Array();
                            callBackString['value1']=value1;
                            callBackString['value2']= value2;
                            callBackString['value3']= value3;
                            callback(null,value1,value2,value3);
    
    };
    

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 2021-06-01
      • 2011-04-21
      • 2019-07-25
      • 1970-01-01
      相关资源
      最近更新 更多