gpt4 book ai didi

javascript - Google Apps 脚本有 promise 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:29:28 26 4
gpt4 key购买 nike

我有一个用户输入数据的表单,我使用 onFormSubmit 触发脚本,该脚本根据插入的数据创建 CSV,在创建 CSV 文件后,我删除数据。问题是我在创建 CSV 文件之前删除了数据。通常我只会打一个 promise 电话,但我认为使用 Google Apps Script 是不可能的。有什么替代品吗?

所以我的完整代码在这里:

更深入地了解它的作用:当我收到新的表单条目时,“Avaliacao”工作表会更新并将触发 testTrigger()。

然后,它将在 LastUser 城市中写入电子邮件和用户城市,以便它可以查找一些我将用于构建 CSV 文件的数据。但是在工作表完成其 VLOOKUP 调用之前调用了 saveAsCsv 函数。所以我的 CSV 文件是空的。

我遇到的另一个同步问题是,如果我启用 sLastUser.clear(); 行,它也会在创建 CSV 之前删除。

function testTrigger () {
//open the sheets
var SS = SpreadsheetApp.getActiveSpreadsheet();
var sAvaliacao = SS.getSheetByName("Avaliação");
var sPreCSV = SS.getSheetByName("PreCSV");
var sInput = SS.getSheetByName("Input");
var sLastUser = SS.getSheetByName("LastUser");
var dAvaliacao = sAvaliacao.getDataRange().getValues();
var dInput = sInput.getDataRange().getValues();

var avaliacaoLastRow = sAvaliacao.getLastRow()-1;

var userEmail = dAvaliacao[avaliacaoLastRow][2];
var userCity = dAvaliacao[avaliacaoLastRow][5];
var userId = dInput[3][52];

sLastUser.appendRow([userEmail, userCity]);

saveAsCSV(userId);
// sLastUser.clear(); <== this is the line where I can`t enable
}

function saveAsCSV(csvName) {
// Name
var fileName = String(csvName) + ".csv"
// Calls convertcsv
var csvFile = convertOutputToCsv_(fileName);
// create the file on my drive
DriveApp.createFile(fileName, csvFile);
}

function convertOutputToCsv_(csvFileName) {
// open sheets
var sPreCSV = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PreCSV");
var cont = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Input").getDataRange().getValues()[3][50] + 1;

var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("PreCSV").getRange(1, 1, cont, 3);
try {
var data = ws.getValues();
var csvFile = undefined;

// Loop through the data in the range and build a string with the CSV data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}

// Join each row's columns
// Add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}

最佳答案

现在引擎 v8 Promise 是定义对象

关于javascript - Google Apps 脚本有 promise 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36561735/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com