Lili65 2023-11-10 17:26 采纳率: 42.2%
浏览 5
已结题

黄色第一次打印 printContent 没有获取到qode的innerHTML 红色第二次打印 才获取到qode的内容这种异步怎么解决 this

img


黄色第一次打印 printContent 没有获取到qode的innerHTML 红色第二次打印 才获取到qode的内容
这种异步怎么解决 this。nextTick用了 没反应

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-10 21:50
    关注

    【以下回答由 GPT 生成】

    问题分析:

    根据问题描述,可以看出在console.log(qode.innerHTML)的时候,qode元素的内容还未被渲染出来,这种情况下就导致了printContent的内容不正确。这是由于JavaScript是单线程的,浏览器在执行JavaScript代码时会阻塞DOM渲染,所以在执行console.log(qode.innerHTML)时,qode元素的内容还未被渲染出来。

    解决方案:

    为了解决异步问题,可以使用异步函数和回调函数的方式来获取正确的printContent内容。具体步骤如下:

    1. printContent内容获取之前,将printContent的内容获取放入一个异步函数中。
    2. 在异步函数中添加回调函数,该回调函数负责获取正确的printContent内容并执行相关操作。
    3. 异步函数中使用setTimeout函数来延迟一段时间,等待printContent内容正确渲染。
    4. 在回调函数中执行相关操作,例如打印或预览。
    5. 在代码中调用异步函数来获取正确的printContent内容。

    具体代码如下所示:

    // 异步函数来获取正确的printContent内容
    function getCorrectPrintContent(callback) {
      let qode = document.getElementById("arcode");
      let printContent = '<div号...</div>';
    
      // 使用setTimeout函数来延迟执行回调函数
      setTimeout(function() {
        callback(printContent);
      }, 100); // 延迟100毫秒
    
      qode.innerHTML = "//清除二维码";
    }
    
    // 使用异步函数获取正确的printContent内容并执行打印或预览操作
    getCorrectPrintContent(function(printContent) {
      let LODOP = getLodop(); // 使用getLodop获取LODOP对象
    
      LODOP.PRINT_INIT("打印件务名称"); // 打印件务名称
    
      LODOP.ADD_PRINT_HTM(0, 0, "100%", "BottomMargin:1emm", printContent);
      LODOP.PREVIEW(); // 预览
    });
    

    通过以上代码,我们使用异步函数和回调函数的方式来获取正确的printContent内容,并在获取到正确的内容后执行打印或预览操作。这样可以确保在printContent内容正确渲染后再执行相关操作,解决了异步问题。

    请注意,这里的setTimeout函数的延迟时间是一个经验值,根据实际情况可能需要调整,确保在内容正确渲染后执行回调函数。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月21日
  • 已采纳回答 11月13日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?
  • ¥750 关于一道数论方面的问题,求解答!(关键词-数学方法)