gpt4 book ai didi

javascript - 等待谷歌服务器端函数解析的最简单方法

转载 作者:行者123 更新时间:2023-11-30 13:50:21 25 4
gpt4 key购买 nike

我需要客户端代码等待被调用的服务器端 (google.script.run) 函数完成,然后再运行更多代码。

withSuccessHandler(successFunc) 不会导致服务器调用之后的代码行等待。

我做了什么:

async function func(){
await google.script.run.withSuccessHandler(myFunc).serverFunc();
console.log("done");
}
func();

代码如何才能等到服务器端函数解析之后才执行 console.log 行?

最佳答案

这个答案怎么样?请将此视为多个答案之一。

模式 1:

在此模式中,serverFunc 运行后,myFunc 运行。此时,console.log("done")myFunc 中运行。

function myFunc() {
console.log("done");
}

function func(){
google.script.run.withSuccessHandler(myFunc).serverFunc();
}

func();

模式 2:

在此模式中,使用了 Promise。当您运行func()时,您可以按顺序看到okdone

function myFunc() {
return "ok";
}

async function func() {
await new Promise(r => {
google.script.run.withSuccessHandler(r).serverFunc();
});
const res = myFunc();
console.log(res);
console.log("done");
}

func();

注意:

  • 如果您测试上述示例,请在 Google Apps 脚本端设置 serverFunc() 函数。
  • 这是一个简单的示例脚本。请根据您的实际情况进行修改。

引用文献:

如果这不是您想要的方向,我深表歉意。

添加:

如果您想在 myFunc 处使用 serverFunc 中的值,以下示例脚本怎么样?

示例脚本:

function myFunc(nice) {
doStuffs(nice);

return "ok";
}

async function func() {
const e = await new Promise(r => {
google.script.run.withSuccessHandler(r).serverFunc();
});
const res = myFunc(e);
console.log(res);
console.log("done");
}

func();
  • 在此脚本中,myFunc 的返回值可以通过 res 检索。

关于javascript - 等待谷歌服务器端函数解析的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58387340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com