• 希望已有的异步函数内部添加部分同步逻辑,但是外部不需要使用await接收返回值实现方法——匿名函数


    目录

    一、问题

    二、解决方法

    三、总结


    一、问题

    1.以前写了一个函数,业务逻辑已经在多个地方使用了。但是现在发现需要在内部添加同步的逻辑修改返回值。如果直接在函数外面加上 async ,则会导致之前的业务逻辑都需要修改(接收返回值时使用await)。怎么样才能让我不修改之前的业务逻辑呢?

    2.代码

    1. //原本的函数
    2. addMark_dom=(paramA,paramB)=>{
    3. let data={...paramA}
    4. /*
    5. 具体的处理逻辑
    6. */
    7. return data;
    8. }
    9. //直接添加 async、await:直接调用addMark_dom的地方必须使用await接收返回值data
    10. async addMark_dom=(paramA,paramB)=>{
    11. let data={...paramA}
    12. /*
    13. 具体的处理逻辑
    14. */
    15. await _api()
    16. .then((result)=>{
    17. if(result.status===200){
    18. Object.assign(data,result.data)
    19. }
    20. })
    21. return data;
    22. }

    二、解决方法

    1.使用匿名函数,在原有的函数内部直接执行匿名函数

    2.代码

    1. //原本的函数
    2. addMark_dom=(paramA,paramB)=>{
    3. let data={...paramA}
    4. /*
    5. 具体的处理逻辑
    6. */
    7. return data;
    8. }
    9. //使用匿名函数:实现了同步,且不影响以前的业务逻辑
    10. addMark_dom=(paramA,paramB)=>{
    11. let data={...paramA}
    12. /*
    13. 具体的处理逻辑
    14. */
    15. (async()=>{
    16. await _api()
    17. .then((result)=>{
    18. if(result.status===200){
    19. Object.assign(data,result.data)
    20. }
    21. })
    22. })()
    23. return data;
    24. }

    三、总结

    1.被逼无奈之下,突然知道了匿名函数的使用场景了。。。。。希望这些错误或者困难真的可以让我有所成长!

    2.感觉办法还可以,如果你们有更好的,欢迎评论,谢谢!

    /*

    希望对你有帮助!

    如有错误,欢迎指正,非常感谢!

    */

  • 相关阅读:
    Python牛客刷题笔记
    python自学
    LLVM 插桩 LLVM IR PHI指令
    HTML5:七天学会基础动画网页10
    day3 数1 函数
    【学习笔记】[ARC145F] Modulo Sum of Increasing Sequences
    SpringCloud使用注解+AOP+MQ来实现日志管理模块
    Uvc Usb Camera 调节亮度无效问题,搞定
    Ubuntu20.04安装pycharm
    HR人才测评,什么是全局观念?如何测评全局观念?
  • 原文地址:https://blog.csdn.net/qq_45327886/article/details/133710586