上一篇文章"JQuery.deferred提供的promise解决方案",提到了javascript异步操作的3个问题,以及javascript Promise入门。现在我们看下如何利用$.when()来解决上一篇博客中的第3个问题。
“考虑这种场景,假如我们同时发送两个Ajax请求,然后要在两个请求都成功返回后再做一件接下来的事,想一想如果只按前面的方式在各自的调用位置去附加回调,这是不是很困难?”
使用when(),我们可以通过类似下面的代码解决这个问题。下面这段代码可以实现这个效果:当ajax1和ajax2操作都成功的时候,会调用onDone回调函数。