gpt4 book ai didi

javascript - 从使用 google.script.run 的嵌套函数获取变量

转载 作者:行者123 更新时间:2023-12-03 02:45:07 25 4
gpt4 key购买 nike

我确信我即将解决这个问题。我做了一些研究,并不断找到一些例子,这些例子表明我可以在嵌套函数内部使用局部变量,但只有一些相反的东西(从嵌套函数中获取变量)。最重要的是,我正在使用 google.script.run.withSuccessHandler() ,这让事情变得困惑(或者至少让我感到困惑)

我需要取回 xRates,以便我可以在函数“updateSidebarValues”内使用它。我尝试过使用闭包,但是说实话,在添加 withSuccessHandler 元素时我不太明白如何使用。

我写了这个:(这是错误的,但我一定很接近?)

function updateSidebarValues(salesTotals) {

var valueToPass = document.getElementById('reportSelect').value;
google.script.run.withSuccessHandler(RatesGetter).getXrates(valueToPass);

function RatesGetter(xRates) {
alert('YAY!!!! This is the variable we need from Code.gs : ' + xRates);
}

..... Do other stuff with xRates

}

我的警报有效...它显示了我的代码文件的正确结果...但是当我稍后尝试使用 xRates 时,告诉我它未定义:(

最佳答案

实际上,您遇到的不仅仅是范围界定问题。 google.script.run.withSuccessHandler() 似乎是异步的,因此它获得的结果不会在同一事件循环中发生。因此,即使您可以解决范围问题,您也会尝试在定义值之前访问它们。您可以创建另一个函数并从回调中调用它。例如:

function updateSidebarValues(salesTotals) {

var valueToPass = document.getElementById('reportSelect').value;
google.script.run.withSuccessHandler(RatesGetter).getXrates(valueToPass);

function RatesGetter(xRates) {
alert('YAY!!!! This is the variable we need from Code.gs : ' + xRates);
doOtherStuff(xRates)
}
function doOtherStuff(xRates) {
//… Do other stuff with xRates
}
}

或者,您可以在 RatesGetter() 中直接执行其他操作。

关于javascript - 从使用 google.script.run 的嵌套函数获取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48133348/

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