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

时间:2017-10-25 09:35:22

标签: javascript google-apps-script

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

enter image description here

底部显示为空,但实际上不是。信息按钮告诉我刚刚对其进行了评估'。

问题在于我将此对象发送到Google Script函数,当我这样做时,它会作为一个空对象发送。在执行将其发送到Google Scripts的代码之前,有没有办法强制对象进入第一个表单?

设置执行Google Script调用的超时有效,但仅限于创建对象的for循环及时完成。

我的代码如下所示:

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)
}

1 个答案:

答案 0 :(得分:0)

console.log 使用 JSON.stringify 方法,

示例:

console.log(JSON.stringify(page_labs))