Promise.chain 避免 then 中魔法数字写法

阅读时长 3 分钟读完

在使用 Promise 的过程中,我们经常会遇到 then 里面的魔法数字写法。比如,一个异步操作需要调用三次接口,每次调用成功后返回的结果中的一个属性,都会传递到下一个接口中进行使用。我们的代码可能会写成这样:

-- -------------------- ---- -------
-------
  -------------- -- ----------------
  -------- ---- -- -- -
    ------ --------------------
  --
  -------------- -- ----------------
  -------- ---- -- -- -
    ------ --------------------
  --
  -------------- -- ----------------
  -------- ----- -- -- -
    ------------------
  --

其中,“data.id”、“item.id” 以及 “value” 都是魔法数字,这样的写法会造成代码的可维护性很差,尤其是对于后续开发和维护过程中需要修改的情况。

解决这个问题的方法就是使用 Promise.chain。Promise.chain 可以让我们在不使用魔法数字的情况下,通过链式调用 then 实现异步操作。下面是 Promise.chain 的实现:

使用 Promise.chain,我们可以将上面的代码重写成下面的代码:

使用 Promise.chain,我们声明了一个数组,数组中存放了一系列的方法,每个方法都返回一个 Promise 实例。在使用 reduce 方法的过程中,每个方法会在上一个方法完成之后继续调用,这样就可以解决 then 中的魔法数字问题。

总之,使用 Promise.chian 避免 then 中的魔法数字写法,可以提高我们代码的可读性和可维护性。尤其是对于复杂的异步操作,使用 Promise.chain 将会让我们的代码更加简洁明了。

希望本文对您有所帮助!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6781d59b935627c900ecbe40

纠错
反馈