当前位置: 首页 > 网络应用技术

优雅用途异步和等待处理Promise的拒绝

时间:2023-03-07 10:54:59 网络应用技术

  由于JavaScript是一个线程,因此程序中将有许多异步操作,例如当我们使用数据时,例如回调函数。

  如果我现在正在做的项目有这样的需求:

  这似乎都写了。在这里,我直接使用Axios Ajax库

  该代码的阅读非常昂贵,并且必须遵循编写代码时的逻辑,因此这不友好,称为地狱的转移。

  幸运的是,有Promise API。

  Ecmascript 6提供了像Promise一样的API。它代表将来即将发生的事件,因此它用于传达异步操作的结果。

  该API的最大好处是,我认为它已经避免了上述地狱的回调。由于三个承诺状态,它允许它通过同步写作表达嵌套回调函数的层。

  与使用异步回调相比,尽管编写了更多代码,但很明显,该代码的逻辑更符合我们的日常思维习惯。

  通常在程序中,编写代码越少,越好。

  因为代码需要更深入地思考,不仅浪费了脑细胞,而且一段时间后,如果没有评论,您当时可能会有干净且难忘的思考维护困难。

  他可以使代码的可读性大大提高,也可以将代码数量降低到惊人的水平。这是由于Ecmascript 7的出现。

  例如,上述需求,使用和:

  因此,有很多人喜欢在编程中使用很多

  但是,以这种方式写作也存在一个问题,也就是说,当异步发生错误时,我们无法捕获错误。因此,该代码应放在语句中

  该代码看起来还不错,但是写得太多了。如果您考虑一下,这种感觉不是很优雅。难道是否有解决程序员小清洁度的解决方案?

  如果我们将其打印出来,我们会发现它是一个并且只能获得状态,因此它是无能为力的。

  句子可以捕获代码块内部的任何错误,因此可以将其捕获到州。

  所以我们可以尝试自己实施一种方式

  如果我们首先捕获承诺的错误,则将此错误和正常数据放在另一个承诺的分辨率中,然后将其传递给等待。这样,后一个承诺等待有两个状态:正常数据和错误。

  在该计划中,处理删除非常谨慎。通常,我们必须弹出一个确认框,以指示用户是否要删除数据。

  ElementUI中的消息模块提供了完美的实现。

  每个页面都可能具有用户需要删除的数据,然后我们可以将确认炸弹框架作为公共方法。

  对于您需要使用的页面,您可以。

  导入{deldialog,handlerPromise}来自'@/utils/del'

  Em

  方法: {

  handleremove(){

  令[Dialogerr,res] =等待Handlpromise(deldialog(this.multiplesection))

  如果(Dialogerr)返回

  让res =等待tabledelete(res)

  //由于Ajax错误已被捕获并提示了顶层的用户,因此您可以直接返回。

  如果(!res)返回

  this.getTableList()

  }

  }似乎真的很方便。如果您对您有所帮助,请像我一样帮助我?

  作者:Sunny Classmate 98202