继发和并发的问题

老师,我还是有点不明白继发和并发的代码有什么区别?继发是直接用await获取了getJSON()返回的Promise对象的值,而并发却是先用变量接收getJSON()返回的Promise对象,再用await处理接收到的Promise对象。这两者有什么区别呢?
正在回答
同学你好,解答如下:
首先明确什么叫做继发,它是指会有顺序的执行,比如说Ajax1发送了请求后得到了个数据,然后拿着这个数据在Ajax1里又发送了个请求,那么也就是说第二次发送请求是以第一次Ajax请求之后的前提下才发送的,它们之间是有关联的,第一次不发送,那么第二次是不会发送的。
并发:还是发送两个请求,那么它们之间是没有任何关联的,各自请求各自的,它们是同时的。
那么我们看代码,如下:

以上代码是指先通过getJson得到有关于`${url}js`的结果,然后在用这个结果进行下一次请求,那么第一次请求与第二次请求是关联的。有第一次才能有第二次。这里要注意一下await是会阻止代码的走法的,也就是说先走谁走完了以后在走谁。

而并发的处理,是先得到两个的数据如jsPromise与jsonPromise都去做获取数据的操作了。两者属于一起(并行)的状态。然后在做await处理的。这里就是它们的区别,同学可能不太理解为什么不能用继发也能实现这样的情况,这是因为在正式项目中,可能会遇到这样的情况,比如需要同时获取多个接口的数据,如果是使用继发的话那么会遇到如网络延时的问题,导致渲染慢卡顿这样的情况,那么这个时候使用并发就更好了。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星