js 回调函数问题的执行结果想作为返回值
functionreceive(){varre_data;client.on('data',function(data){re_data=data;console.log...
function receive()
{
var re_data;
client.on('data', function(data) {
re_data = data;
console.log(data);
client.end();
});
return re_data ;
}
receive这个函数的目的是返回接受到的数据(data),但data值在一个回调函数里面,总是先执行return ,再执行回调函数,因此返回值总是undefined,有什么办法可以解决吗? 展开
{
var re_data;
client.on('data', function(data) {
re_data = data;
console.log(data);
client.end();
});
return re_data ;
}
receive这个函数的目的是返回接受到的数据(data),但data值在一个回调函数里面,总是先执行return ,再执行回调函数,因此返回值总是undefined,有什么办法可以解决吗? 展开
1个回答
展开全部
建议改变你的思维方式,将你的函数 receive 也改成回调式的:
function receive(callback){
// ....
client.on('data', function(data) {
callback(data);
});
}
以上,请采纳,请给分。
追问
但是后面会连续多次调到这个函数,会一层层回调,很不方便,还有什么其他的办法吗
追答
明白你的诉求,其实是觉得多重回调太难看对吧?
可以看着这个文章:
http://www.jb51.net/article/55598.htm
比较长,我就不粘贴过来了,你看看是否符合你的要求。如果符合,还请采纳。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询