这是我的index.js文件的一部分。
var globalVar = 'value';
console.log("start");
function callAppsScript(auth) {
var scriptId = '************************************';
const script = google.script({version: 'v1', auth});
script.scripts.run({
resource: {
function: 'getSheetdata',
},
scriptId: scriptId
}, (err, res) => {
if (err) return console.log(`The API create method returned an error: ${err}`);
var json = JSON.stringify(res);
json = JSON.parse(json);
globalVar = json.data.response.result;
console.log("1 " + globalVar);
});
}
console.log("2 " + globalVar);
index.js来自developers.google.com github上的示例脚本。
当我执行“ node index.js”时,结果是
start
2 value
1 {"Sheet1":[{"key":"env","value":"prd"}],"Sheet2":[{"key":"env","value":"stg"}]}
我在这一行添加了“ withSuccessHandler”。
script.scripts.run.withSuccessHandler({
但这没用。
start
2 value
TypeError: script.scripts.run.withSuccessHandler is not a function
如何编码以同步方式返回json?
我可以异步解决此问题。
这是我的代码。
const scriptId = '************************************';
async function callAppsScript() {
try {
const auth = await authorize();
const script = google.script({ version: 'v1', auth: auth });
const rs = await script.scripts.run({
auth: auth,
resource: {
function: 'getSheetdata',
},
scriptId: scriptId
})
var json = JSON.stringify(rs);
json = JSON.parse(json);
var globalVar = json.data.response.result;
return globalVar;
} catch (error) {
console.log(error);
}
}