如何利用Promises编写更优雅的JavaScript代码(2)

var firstData = null;var secondData = null;var responseCallback = function() { if (!firstData || !secondData) return; // do something}$.get("http://example.com/first", function(data) { firstData = data; responseCallback();});$.get("http://example.com/second", function(data) { secondData = data; responseCallback(); });

使用 promise 的话,这就简单多了:

var firstPromise = $.get("http://example.com/first"); var secondPromise = $.get("http://example.com/second"); $.when(firstPromise, secondPromise).done(function(firstData, secondData) { // do something });

这里我们使用 when 方法,将其绑定到一个供两个请求都完成时调用的处理器上。

结论

这就是 Promise。希望你马上就想到一些可以用 Promise 实现的的可怕的事情。你最喜欢使用它们的方式是什么?在评论中告诉我吧!

*注:为简单起见,本文使用了jQuery的延期执行。jQuery 的 Deferred对象 和 Promises/A+的规范 间有细微的差别,这个规范更标准。

以上这篇如何利用Promises编写更优雅的JavaScript代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzpjjy.html