如何解决异步请求的竞态问题

我们都知道JavaScript只有一根线程,相较同步操作,异步彻底避免了线程阻塞,提高了线程的可响应性。但是,与此同时我们会发现一个问题:无法保证异步操作的完成会按照他们开始时同样的顺序。 简单说,异步操作的开始顺序并不决定结束顺序,一个简单例子如下: let pro_1 = new Promise((resolve, rejct) => { ...