在线 求教 其他地方都解决了就这个问题 卡住了

	 onLoad: function () {

this.youxishujpost = this.youxiwebsocket(function(clientid){
cc.log(‘回调函数内部1::::’ + clientid);
return clientid;
});
cc.log(‘回调函数外部::::’ + this.youxishujpost);
),
回调内部是正常能够获得 返回值但是return 不出来
外部的return 为 undefined

你可以试一试用self.youxishujpost(有时候我this时出错,就更改成self)

websocket onmessage 获得数据以后,尝试各种方法 都不能解决值域问题,不管是本地的变量 还是全局变量 或者 本地文字组件都 无法把值复制,只能cc. log看到。
这个就是onmessage 回调过来的数据,websocket里用不了本地的变量 主要是这个原因。

现有木有什么解决办法大佬

这个问题主要是websocket onmessage 获得数据以后,尝试各种方法 都不能解决值域问题,不管是本地的变量 还是全局变量 或者 本地文字组件都 无法把值复制,只能cc. log
前面的问题也是这个原因,不是this的问题

log的顺序是不是先外部,后内部了

没有,并且 该脚本挂载的 文字节点 不能在回调里使用。例如我挂载一个节点aaa
想把拿到的数据赋值给这个节点
this. aaa. 字符串=获取的数据,
也不行 报 错this. aaa没有定义 ,已经挂载了怎么可能没有定义
我在另外一个同级函数 同样的方式赋值给文字节点就成功了

emit消息事件有没有试过

那个return clientid出来应该不能代表this.youxiwebsocket
而是this.youxiwebsocket(clientid)

this.youxiwebsocket()方法中,有没有return

回调是个异步的过程,你这个是同步的写法,当然取不到,执行到你外部log的时候回调都还没执行;有个方法是回调的时候发出一个事件,然后你外部监听这个事件来处理回调后的逻辑;或者去看下 async/await和promise的内容