我正在尝试恢复函数的值,但它不会返回任何内容
这是函数(Request是一个异步函数,可以获取请求):
var getVolumesOKCoin = function(pair){
request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, function (error, response, body) {
return body;
});
}
这就是我恢复价值的方法
var retObj = getVolumesOKCoin(pair);
retObj的值未定义。
恢复价值的最佳方法是什么?
感谢您的帮助。
答案 0 :(得分:1)
首先要做的事情是:您的功能称为getVolumesOKCoin
而不是getVolumes
。
但是你的函数仍然没有返回任何东西,因为你正在调用一个异步函数,它需要一些时间才能在返回之前接收数据。 See this question here about how asynchronous calls work
一种解决方案是将您的函数体包装在所谓的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!' );
} );
另外请确保request
已定义。
答案 1 :(得分:0)
简单地添加返回请求。
var getVolumesOKCoin = function(pair){
return request('https://www.okcoin.com/api/v1/depth.do?symbol=' + pair, function (error, response, body) {
return body;
});
}