问题
I have a Google form linked to a Google sheet. In that spreadsheet I have code that have this
function onSubmit(e){
Logger.log(e)
Logger.log("Call onSubmit")
}
The trigger is setup as follow
Project: Spreadsheet's scritp
Deployment:Head
Event:From spreadsheet - On form submit
Function:onSubmit
So whenever I submit the form, the log shows
[object Object]
Call onSubmit
The form has many questions, not an empty form. As I read the documentation, it seems like the event object has many information. Is there something wrong with my setup? I have resorted to read responses in the data sheets but that's not ideal. Too many things have to call and/or defined manually.
回答1:
The logger is buggy and it is not recommended to rely directly on what you see in the debugger.
Best practices:
Always use
consoleclass instead ofLoggerAlways
JSON.stringify()anything that you're going to log:console.log(JSON.stringify(e));
The last one should fix your problem. [object Object] is the result of calling toString() on a object, as the logger is incapable to displaying a object directly.
const obj = {a:1};
console.log(obj.toString());//[object Object]
console.log(JSON.stringify(obj));//'{"a":1}'
回答2:
Unlike most browser debuggers, the Google apps script logger will only store basic string values. In most cases, this means that the documentation will be more useful for understanding complex values. In your case, the event object for submit events is quite simple, with a values key for a simple array and a namedValues key for an object lookup of what was submitted.
来源:https://stackoverflow.com/questions/64027590/event-object-of-onsubmit-is-empty-in-google-script