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,有什么办法可以解决吗?
展开
 我来答
hutia
推荐于2017-11-27 · TA获得超过580个赞
知道小有建树答主
回答量:97
采纳率:100%
帮助的人:158万
展开全部

建议改变你的思维方式,将你的函数 receive 也改成回调式的:

function receive(callback){
    // ....
    client.on('data', function(data) {
        callback(data);
    });
}


以上,请采纳,请给分。

追问
但是后面会连续多次调到这个函数,会一层层回调,很不方便,还有什么其他的办法吗
追答
明白你的诉求,其实是觉得多重回调太难看对吧?

可以看着这个文章:
http://www.jb51.net/article/55598.htm

比较长,我就不粘贴过来了,你看看是否符合你的要求。如果符合,还请采纳。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式