ওপি প্রশ্নের উত্তর দেওয়া
ক) গুগল অ্যাপস স্ক্রিপ্ট কনসোল মুদ্রণের ক্ষেত্রে কীভাবে কাজ করে সে সম্পর্কে আমি কী বুঝতে পারি না যাতে আমার কোডটি আমার পছন্দগুলি পূরণ করছে কিনা তা আমি দেখতে পারি?
গুগল অ্যাপস স্ক্রিপ্ট প্রকল্পের .gs ফাইলগুলির কোডটি ওয়েব ব্রাউজারের চেয়ে সার্ভারে চলে। পথ বার্তা লগইন করার জন্য ব্যবহার ছিল ক্লাস লগার ।
খ) কোডটি নিয়ে কি সমস্যা?
ত্রুটি বার্তায় যেমন বলা হয়েছিল, সমস্যাটি console
ছিল তা সংজ্ঞায়িত হয়নি তবে আজকাল একই কোডটি অন্য ত্রুটি ছুঁড়ে দেবে:
রেফারেন্সএরর: "প্লেয়ারআরে" সংজ্ঞায়িত হয়নি। (লাইন 12, ফাইল "কোড")
এটি কারণ প্লেয়ারআরে স্থানীয় ভেরিয়েবল হিসাবে সংজ্ঞায়িত করা হয়। ফাংশনটির বাইরে লাইন সরানো এটিকে সমাধান করবে solve
var playerArray = [];
function addplayerstoArray(numplayers) {
for (i=0; i<numplayers; i++) {
playerArray.push(i);
}
}
addplayerstoArray(7);
console.log(playerArray[3])
এখন কোডটি ত্রুটি ছুঁড়ে ছাড়াই কার্যকর করে, পরিবর্তে ব্রাউজার কনসোলটি দেখার জন্য আমাদের স্ট্যাকড্রাইভার লগিংয়ের দিকে নজর দেওয়া উচিত। গুগল অ্যাপস স্ক্রিপ্ট সম্পাদক ইউআই থেকে ভিউ> স্ট্যাকড্রাইভার লগিং এ ক্লিক করুন ।
সংযোজন
2017 এ গুগল সমস্ত স্ক্রিপ্টগুলিতে স্ট্যাকড্রাইভার লগিং প্রকাশ করেছে এবং ক্লাস কনসোল যুক্ত করেছে, সুতরাং এর মতো কিছু অন্তর্ভুক্ত করার ফলে console.log('Hello world!')
কোনও ত্রুটি ঘটবে না তবে লগটি ব্রাউজার কনসোলের পরিবর্তে গুগল ক্লাউড প্ল্যাটফর্ম স্ট্যাকড্রাইভার লগিং সার্ভিসে থাকবে।
থেকে Google Apps স্ক্রিপ্ট রিলিজ নোট 2017
23 জুন, 2017
স্ট্যাকড্রাইভার লগিংটিকে প্রাথমিক অ্যাক্সেসের বাইরে সরানো হয়েছে। সমস্ত স্ক্রিপ্ট এখন স্ট্যাকড্রাইভার লগিং অ্যাক্সেস আছে।
লগিং থেকে > স্ট্যাকড্রাইভার লগিং
নিম্নলিখিত উদাহরণটি স্ট্যাকড্রাইভারে তথ্য লগ করতে কনসোল পরিষেবাটি কীভাবে ব্যবহার করবেন তা দেখায় ।
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);
}