欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

测试事物 (I) - 同步和异步 - 同步:当函数调用启动时,调用不会返回或调用者不会继续执行后续操作,直到获得该调用的结果。异步:异步与同步相反,当发出异步过程调用时,调用者可以继续执行后续操作,直到调用者得到结果。调用完成后,通常会通过状态(轮询)、通知(消息)和回调通知调用者。对于异步调用,调用的返回不受调用者的控制。 从上述定义中我们可以看出,同步和异步可以由调用者或被调用者控制。我们暂且将调用者视为客户端,而被调用者视为服务器。 在客户端调用服务器接口后,如果客户端需要等待服务器返回结果才能进行下一步,那么它就是同步的。如果在进行下一步之前不需要等待服务器返回结果,那么它就是同步的。如果在进行下一步之前不需要等待服务器的结果,那么它就是异步的。 服务器本身既可以控制同步,也可以控制异步。对于需要长时间计算的函数,服务器会将其设置为异步,在客户端发出请求后立即向客户端返回结果,这没有任何实际意义,只是表示服务器收到了请求。对于很快就能得到结果的请求,使用同步就很好,返回的结果包含了得到这

最编程 2024-06-11 15:38:59
...

2. 功能实现

试想一下,如果一个功能需要两个接口配合才能完成,有可能存在什么问题呢?我们从本次同步和异步的主题考虑来举个例子:
有一个新建联系人的功能,能够新建联系人的入口有很多,假设其中一个入口是通过上传照片创建联系人。这个入口要是想完成新建就需要调用两个接口,一个是上传照片接口(A),另一个是创建联系人接口(B)。试想一下,如果A是客户端异步调用的,那是不是有可能会出现B调用完成后A还没有调用完成的情况?如果是那样,那本次创建的联系人就无法实时关联A接口上传的照片,轻则用户体验有问题(客户端可以使用轮询拉照片等),重则就会出现创建了联系人却没有照片的BUG。

测试人需关注

推荐阅读