我有这个JavaScript
代码,我正在对函数进行asynchronous
调用:
const configDefault = {
Bot: {
// initial sessionAttributes
text: 'The state is not set',
},
};
$(document).ready(function() {
myIP();
});
function myIP() {
$.getJSON("//freegeoip.net/json/?callback=?", function(data) {
myCallback(data.region_name);
});
}
function myCallback(State) {
if(State == 'New York'){
configDefault.Bot.text = 'State is New York';
console.log(configDefault.Bot.text);
}
else {
configDefault.Bot.text = 'State is different than New York';
console.log(configDefault.Bot.text);
}
};
上述text
变量是从vue.js
文件调用的,语法如下:
initMessageList(context) {
context.commit('pushMessage', {
type: 'text',
text: context.state.config.Bot.text,
});
}
text
中的configDefault
变量是加载此javascript
页面时屏幕上显示的消息。现在我面临的问题是,由于我正在使用asynchronous
电话,因此导致时间问题,因此在屏幕上我仍然会看到text
- The state is not set
中的原始内容虽然在控制台上我可以将text
值视为State is New York
或State is different than New York
。
现在要解决此问题,我想运行与同步相同的代码,以便可以删除此时间问题(在我的理解中它应该?)。我对JavaScript一点都不熟悉(我几天前就开始使用它并且还在学习)所以我无法将其转换为同步版本。任何人都可以提供如何在同步版本中实现上述内容?
注意:上面的我的更新代码基于this link的以下javascript / vue.js项目。我在上面提到的项目中将上述代码添加到this file(我的代码中文件中的initialText
为text
。)