Javascript Node js return不返回任何内容

Javascript Node js return不返回任何内容,javascript,node.js,asynchronous,Javascript,Node.js,Asynchronous,我试图恢复函数的值,但它不返回任何内容 这是一个函数(请求是一个异步函数,用于生成get请求): 这就是我恢复价值的方法 var retObj = getVolumesOKCoin(pair); retObj的值未定义 恢复价值的最佳方式是什么 感谢您的帮助。第一件事:您的函数名为getvolumesokoin,而不是getVolumes 但是您的函数仍然不会返回任何内容,因为您调用的异步函数在返回数据之前需要一些时间来接收数据 一种解决方案是将函数体封装在所谓的Promise中,并在收到数

我试图恢复函数的值,但它不返回任何内容

这是一个函数(请求是一个异步函数,用于生成get请求):

这就是我恢复价值的方法

var  retObj = getVolumesOKCoin(pair);
retObj的值未定义

恢复价值的最佳方式是什么


感谢您的帮助。

第一件事:您的函数名为
getvolumesokoin
,而不是
getVolumes

但是您的函数仍然不会返回任何内容,因为您调用的异步函数在返回数据之前需要一些时间来接收数据

一种解决方案是将函数体封装在所谓的
Promise
中,并在收到数据后立即解析它

var getVolumesOKCoin = function(pair) {
  return new Promise( ( resolve, reject ) => {
    request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, (error, response, body) => {
      resolve( body );
    } );
  } );
}

getVolumesOKCoin()
  .then( ( body ) => {
    console.log( body );
  } )
  .catch( ( err ) => {
    console.error( 'Error!' );
  } );

还要确保定义了请求。

第一件事:您的函数被调用为
getVolumesOKCoin
,而不是
getVolumes

但是您的函数仍然不会返回任何内容,因为您调用的异步函数在返回数据之前需要一些时间来接收数据

一种解决方案是将函数体封装在所谓的
Promise
中,并在收到数据后立即解析它

var getVolumesOKCoin = function(pair) {
  return new Promise( ( resolve, reject ) => {
    request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, (error, response, body) => {
      resolve( body );
    } );
  } );
}

getVolumesOKCoin()
  .then( ( body ) => {
    console.log( body );
  } )
  .catch( ( err ) => {
    console.error( 'Error!' );
  } );

还要确保定义了请求。

简单地将返回添加到请求

var getVolumesOKCoin = function(pair){
  return request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, function (error, response, body) {
    return body;
  });
}

简单地将返回添加到请求

var getVolumesOKCoin = function(pair){
  return request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, function (error, response, body) {
    return body;
  });
}

“这就是你没有定义的原因。”不,不是这样的。如果名称确实不正确,那么他们会得到一个
ReferenceError
@FelixKling您是对的。谢谢你指出。@lumio工作得很好,关于未定义的评论是在你的解决方案“我的坏不是你的”之后完成的。“这就是为什么你得到未定义的。”不,不是这样的。如果名称确实不正确,那么他们会得到一个
ReferenceError
@FelixKling您是对的。谢谢你指出它。@lumio工作得很好,关于未定义的注释是在你的解决方案之后完成的。我不好,不是你关于函数名称的教授,它们在我的代码中是相同的,我编辑了以简化问题,你可以用你的问题来解决它。@FelixKling编辑了谢谢你关于函数名称的提示,它们在我的代码中是相同的,我编辑了以简化问题。您可以通过编辑您的问题来解决这些问题。@FelixKling编辑谢谢您的提示您确定这会起作用吗?
请求
返回什么?您确定这会起作用吗?
请求
返回什么?