问题
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
console
class instead ofLogger
Always
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