首页前端开发HTML如何构造JavaScript Promise?

如何构造JavaScript Promise?

时间2024-05-08 20:40:03发布访客分类HTML浏览71
导读: Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。 由于 Promise 是 ES6 新增加的,所以一些旧的浏览器并不支持,苹果的 Safari 10 和 Windows 的...
  Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。      由于 Promise 是 ES6 新增加的,所以一些旧的浏览器并不支持,苹果的 Safari 10 和 Windows 的 Edge 14 版本以上浏览器才开始支持 ES6 特性。      构造 Promise      现在我们新建一个 Promise 对象:      new Promise(function (resolve, reject) {      // 要做的事情...      } );      通过新建一个 Promise 对象好像并没有看出它怎样 "更加优雅地书写复杂的异步任务"。我们之前遇到的异步任务都是一次异步,如果需要多次调用异步函数呢?例如,如果我想分三次输出字符串,第一次间隔 1 秒,第二次间隔 4 秒,第三次间隔 3 秒:      实例      setTimeout(function () {      console.log("First");      setTimeout(function () {      console.log("Second");      setTimeout(function () {      console.log("Third");      } , 3000);      } , 4000);      } , 1000);      这段程序实现了这个功能,但是它是用 "函数瀑布" 来实现的。可想而知,在一个复杂的程序当中,用 "函数瀑布" 实现的程序无论是维护还是异常处理都是一件特别繁琐的事情,而且会让缩进格式变得非常冗赘。      现在我们用 Promise 来实现同样的功能:      实例      new Promise(function (resolve, reject) {      setTimeout(function () {      console.log("First");      resolve();      } , 1000);      } ).then(function () {      return new Promise(function (resolve, reject) {      setTimeout(function () {      console.log("Second");      resolve();      } , 4000);      } );      } ).then(function () {      setTimeout(function () {      console.log("Third");      } , 3000);      } );      这段代码较长,所以还不需要完全理解它,我想引起注意的是 Promise 将嵌套格式的代码变成了顺序格式的代码。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何构造JavaScript Promise?
本文地址: https://pptw.com/jishu/655753.html
JavaScript变量名的代码规范 JavaScript Promise函数实力解析

游客 回复需填写必要信息