繁体   English   中英

对象在控制台中的显示方式不同,在Javascript中的操作方式也不相同

[英]Objects display differently in console and act differently in Javascript

以下是我的Chrome控制台中两个对象的屏幕截图。 两者都是由与Google Script文件交互的Javascript函数创建的。 第一个定义为键值对,第二个定义为空,然后通过for循环将键值对添加到键值对。

在此处输入图片说明

底部的似乎是空的,但实际上不是。 信息按钮告诉我它“刚刚被评估”。

问题是我将这个对象发送给Google Script函数,当我这样做时,它作为一个空对象进入。 在执行将其发送到Google脚本的代码之前,是否有任何方法可以将对象强制为第一种形式?

只有在创建对象的for循环及时完成后,才能在执行Google Script调用时设置超时。

我的代码如下所示:

function logIt(blob) {

  var page_labs = {};

  PDFJS.getDocument({data: blob}).then(function (PDFdoc) {
    for (var i=1; i<=PDFdoc.numPages; i++) {
      PDFdoc.getPage(i).then(function (PDFpage) {

        var page_number = PDFpage.pageIndex + 1;
        var labs = ''

        PDFpage.getTextContent().then(function (text) {
          for (var j in text.items) {
            var item = text.items[j]
            if (item.str.substr(0,1) == '♩') {
              labs += '♩'
            }
          }
          page_labs['Page ' + page_number.toString()] = labs
        })
      })
    }
  })
  console.log({'Page 1': '♩♩♩♩♩♩♩♩♩♩♩♩'})
  console.log(page_labs);
  google.script.run.lofNumbers(page_labs)
}

使用JSON.stringify方法进行console.log 记录

例:

console.log(JSON.stringify(page_labs))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM