追梦随想
追梦随想
  • 发布:2022-12-01 11:16
  • 更新:2022-12-01 16:57
  • 阅读:130

【报Bug】云对象内调用另一个云对象会出现卡死超时情况

分类:uniCloud

产品分类: uniCloud/App

示例代码:

云对象控制台

11:10:22.584 [本地调试][云对象:a]调用方法:[test],请求参数: 63   
11:10:22.596 [本地调试][云对象:b]调用方法:[info],请求参数: 63   
11:12:22.604 [本地调试]Error: socket hang up  
11:12:22.604 [本地调试]    at connResetException (internal/errors.js:609:14)  
11:12:22.605 [本地调试]    at Socket.socketOnEnd (_http_client.js:458:23)  
11:12:22.606 [本地调试]    at Socket.emit (events.js:326:22)  
11:12:22.606 [本地调试]    at endReadableNT (_stream_readable.js:1241:12)  
11:12:22.607 [本地调试]    at processTicksAndRejections (internal/process/task_queues.js:84:21)  
11:12:22.607 [本地调试][云对象:b]返回结果: 69 

客户端控制台

Error: request:fail timeout  
    at _callee35$ (chunk-vendors.js:33969:109940)  
    at tryCatch (chunk-vendors.js:23148:40)  
    at Generator.invoke [as _invoke] (chunk-vendors.js:23374:22)  
    at prototype.<computed> [as next] (chunk-vendors.js:23200:21)  
    at asyncGeneratorStep (chunk-vendors.js:14436:24)  
    at _next (chunk-vendors.js:14458:9) 'SYS_ERR' 'request:fail timeout'

操作步骤:

云对象 a

module.exports = {  
	_before: function () { // 通用预处理器  
  
	},  
	async test(num) {  
		const b = uniCloud.importObject('b');  
		let res = await b.info(num).then((res) => {  
			return res;  
		});  
		// let res = num;  
		return {  
			errCode: 0,  
			errMsg: res  
		}  
	}  
}

云对象 b

module.exports = {  
	_before: function () { // 通用预处理器  
  
	},  
	info(c) {  
		return parseInt(c) + 6;  
	}  
}  

客户端

<button @click="test" type="primary">测试</button>  
test() {  
			const num = Math.floor(Math.random()*100).toString();  
			const a = uniCloud.importObject('a');  
			a.test(num).then((res) => {  
				console.log(res);  
			});  
		}

预期结果:

正常调用

实际结果:

无法调用

bug描述:

在云对象 a 内调用云对象 b 会经常出现卡死或超时情况,如果把调用 云对象 b 部分注释,就完全没问题,这是在本地调试,上传到云端是否也会如此还没有测试

2022-12-01 11:16 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

HBuilderX 版本多少?

  • 追梦随想 (作者)

    3.6.5.20221121


    2022-12-01 17:50

  • DCloud_uniCloud_CRL

    回复 追梦随想: 你把完整代码发出来看下,不方便的话私信发我也可以。


    2022-12-02 11:00

  • 追梦随想 (作者)

    回复 DCloud_uniCloud_CRL: 这就是完整的啊,新建云对象,别的都没选,内容是一模一样的


    2022-12-02 23:34

  • 追梦随想 (作者)

    回复 DCloud_uniCloud_CRL: 而且电脑也重启过,没有别的软件干扰,只要云对象调用云对象就会这样


    2022-12-02 23:35

  • 追梦随想 (作者)

    经过多次测试发现,上传到云端后互相调用没问题,右键运行本地云对象也没问题,唯一的问题就是通过客户端调用云对象的时候,如果该云对象内调用了另一个云对象就会出现超时情况,网上搜 socket hang up 说是请求头设置的问题,你们排查下吧,我这边的客户端是运行到谷歌浏览器测试的,电脑系统是win7,总不会跟本地nodejs版本有关系吧


    2022-12-04 01:17

要回复问题请先登录注册