ตอบคำถาม OP
ก) ฉันไม่เข้าใจอะไรเกี่ยวกับการทำงานของคอนโซล Google Apps Script เกี่ยวกับการพิมพ์เพื่อที่ฉันจะได้ดูว่าโค้ดของฉันบรรลุตามที่ฉันต้องการหรือไม่
โค้ดบนไฟล์. gs ของโครงการ Google Apps Script ทำงานบนเซิร์ฟเวอร์แทนที่จะเป็นบนเว็บเบราว์เซอร์ วิธีการบันทึกข้อความที่จะใช้ชั้น Logger
B) มีปัญหากับรหัสหรือไม่?
ตามที่ข้อความแสดงข้อผิดพลาดกล่าวว่าปัญหานั้นconsole
ไม่ได้ถูกกำหนด แต่ในปัจจุบันรหัสเดียวกันจะทำให้เกิดข้อผิดพลาดอื่น ๆ :
ReferenceError: "playerArray" ไม่ได้กำหนดไว้ (บรรทัดที่ 12 ไฟล์ "รหัส")
นั่นเป็นเพราะ playerArray ถูกกำหนดให้เป็นตัวแปรท้องถิ่น การเลื่อนบรรทัดออกจากฟังก์ชันจะช่วยแก้ปัญหานี้ได้
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
ตอนนี้โค้ดดำเนินการโดยไม่มีข้อผิดพลาดแทนที่จะดูที่คอนโซลเบราว์เซอร์เราควรดู Stackdriver Logging จากแก้ไข UI ของ Google Apps Script คลิกดู> Stackdriver เข้าสู่ระบบ
ภาคผนวก
ในปี 2017 Google ได้เปิดตัวสคริปต์ทั้งหมด Stackdriver Logging และเพิ่ม Class Console ดังนั้นการรวมบางอย่างเช่นconsole.log('Hello world!')
จะไม่ทำให้เกิดข้อผิดพลาด แต่บันทึกจะอยู่ใน Stackdriver Logging Service ของ Google Cloud Platform แทนคอนโซลเบราว์เซอร์
จากบันทึกประจำรุ่นของ Google Apps Script 2017
23 มิถุนายน 2560
Stackdriver Loggingถูกย้ายออกจาก Early Access แล้ว ขณะนี้สคริปต์ทั้งหมดสามารถเข้าถึงการบันทึก Stackdriver ได้แล้ว
จากLogging> Stackdriver logging
ตัวอย่างต่อไปนี้แสดงวิธีใช้บริการคอนโซลเพื่อบันทึกข้อมูลใน Stackdriver
function measuringExecutionTime() {
console.info('Timing the %s function (%d arguments)', 'myFunction', 1);
var parameters = {
isValid: true,
content: 'some string',
timestamp: new Date()
};
console.log({message: 'Function Input', initialData: parameters});
var label = 'myFunction() time';
console.time(label);
try {
myFunction(parameters);
} catch (e) {
console.error('myFunction() yielded an error: ' + e);
}
console.timeEnd(label);
}