Google应用脚本功能appenParagraph没有附加到文档的末尾

时间:2016-08-11 10:27:51

标签: google-apps-script

我有这段代码,我想知道如何在最近打开的文档末尾添加段落:

function foo()
{
  var doc = DocumentApp.getActiveDocument();
  var doc_id = doc.getId();
  var body = doc.getBody();

  body.appendParagraph('1');
  body.appendParagraph('2');

  doc.saveAndClose();
  doc = DocumentApp.openById(doc_id);
  body = doc.getBody();

  body.appendParagraph('3');
}

我预计结果是" 1 2 3"但它是" 3 1 2"。

我一直在玩setCursor但没有成功。

提前致谢

1 个答案:

答案 0 :(得分:1)

在Google Script中,函数仅在返回时实际写入。函数的每个部分都只是承诺在某个时刻以大致相同的顺序完成所有工作。我怀疑appendParagraph是问题所在。我希望它是导致错误的doc.saveAndClose()。如果你能这样做,那么谨慎的做法是将这个部分作为一个单独的函数,在onSuccess()上调用。

所以,当你调用foo()时:

google.script.run
    .withSuccessHandler( function() { google.script.run.bar() })
.foo();

然后:

function foo() {
    append 1 & 2
}

function bar() {
    append 3
}