【发布时间】:2020-05-01 21:42:01
【问题描述】:
我正在尝试使用 Google Picker 来选择一个文件夹并返回 folderId。我能够获取文件夹 ID,甚至将其粘贴到电子表格单元格中(我不想这样做;我只想在调用代码中使用该值)。但是我的调用代码会提前压缩并且不等待选择器的结果。即使在我选择文件夹之前,我也可以看到工作表上的值正在更新。我在这篇文章中使用了代码并稍作修改。 Google Picker - Return the File ID to my Google Script
我添加了 'PropertiesService.getScriptProperties().setProperty('mykey', fileId);'保存 fileId 和 'var myvalue = PropertiesService.getScriptProperties().getProperty('mykey');'在调用例程中检索它。这行得通,但时机不对。
什么可以让我的代码等待选择器输出?
我创建了这个函数来尝试运行整个事情;这是代码压缩的地方。
function allIn() {
showPicker() ;
console.log("Ready to get myKey");
var myvalue = PropertiesService.getScriptProperties().getProperty('mykey');
console.log("Ready to console log myKey"); //doesn't show this;
console.log("MyValue returned = " + myvalue); //doesn't show this;
SpreadsheetApp.getActiveSheet().getRange('a4').setValue(myvalue); //runs this before picker completes;
}
【问题讨论】:
-
stackoverflow.com/questions/44359158/… 看起来使用回调作为参数可能会有所帮助,但我不明白发生了什么 - 使用函数作为输入参数。
标签: javascript asynchronous google-apps-script google-apps google-picker