Как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких ответов.
Шаблон 1:
В этом шаблоне после запуска serverFunc
выполняется myFunc
. В это время console.log("done")
выполняется в myFunc
.
function myFunc() {
console.log("done");
}
function func(){
google.script.run.withSuccessHandler(myFunc).serverFunc();
}
func();
Шаблон 2:
В этом шаблоне использовался Promise. Когда вы запускаете func()
, вы можете видеть ok
и done
по порядку.
function myFunc() {
return "ok";
}
async function func() {
const res = await (() => new Promise(r => google.script.run.withSuccessHandler(() => r(myFunc())).serverFunc()))();
console.log(res);
console.log("done");
}
func();
Примечание:
- Если вы тестируете вышеуказанные образцы, пожалуйста, установите функциюиз
serverFunc()
на стороне Google Apps Script. - Это простой пример сценария. Поэтому, пожалуйста, измените это для вашей реальной ситуации.
Ссылки:
Если это не то направление, которое вы хотите, я прошу прощения.
Добавлено:
Если вы хотите использовать значения из serverFunc
в myFunc
, как насчет следующего примера сценария?
Пример сценария:
function myFunc(nice) {
doStuffs(nice);
return "ok";
}
async function func() {
const res = await (() => new Promise(r => google.script.run.withSuccessHandler((e) => r(myFunc(e))).serverFunc()))();
console.log(res);
console.log("done");
}
func();
- В этом сценарии возвращаемое значение из
myFunc
может быть получено с помощью res
.