【问题标题】:How to assign the value returned by a callback function to a variable? Couldn't understand from another ques. about asynchronous call [duplicate]如何将回调函数返回的值赋给变量?从另一个问题无法理解。关于异步调用[重复]
【发布时间】:2021-10-01 21:45:36
【问题描述】:

在这里,我使用的是 GoLang 的 Wails。 参考:https://wails.app/

Wails 有助于为简单的 golang 应用程序提供前端。它使用 javascript、html 和 css 来呈现 ui 并将前端连接到后端。我对 Javascript 完全陌生。所以,这里有一个简单的 Golang Generate(),它使用 mystore.set("string") 为 wails 存储设置一些字符串,我认为,在 javascript 端是某种回调函数并回调该字符串值使用 mystore.subscribe()。 Wails 有一个默认示例。每当任何后端函数生成任何值并使用 mystore.set(abc) 在存储中设置时,它都会获取该存储值并将其设置为 span 元素,如下所示。

HTML:

<span id='logo'></span>

JAVASCRIPT:

mystore.subscribe(function(state) {
    document.getElementById('logo').innerText = state;
});

现在,我想获取该值并将其存储到我的变量中,所以我尝试了这个:

var logoTitle = '';
mystore.subscribe(function(state) {
    logoTitle = state;
});

但是,它没有将该值设置为 var logoTitle。另外,它是说 logoTitle 变量已声明但从未使用过。 我该怎么办?

【问题讨论】:

    标签: javascript go wails


    【解决方案1】:

    那是因为那是异步代码。 mystore.subscribe 中的回调只会在“某个时候”被调用,因此 logoTitle 暂时不会被设置。你基本上是在告诉mystore“一旦你得到了值,就调用那个函数”但是你的代码会立即继续执行它之后的语句。

    如果您想运行取决于传递给回调的值的代码,请将代码(或对它的调用)放入您的回调中。

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2016-01-14
      • 1970-01-01
      相关资源
      最近更新 更多