gpt4 book ai didi

javascript - 函数作用域外的变量

转载 作者:行者123 更新时间:2023-11-28 15:20:42 24 4
gpt4 key购买 nike

我有读取 json 文档的函数,dayNames 和 MonthNames 在函数外部可见,但日期格式不可见。在函数内部,它正确打印其值,但在外部,它不会更新外部值。那么为什么 dateFormat 不更新外部函数呢?

var dayNames = [];
var monthNames = [];
var dateFormat = "";
$.getJSON("/Scripts/cldr/main/"+ culture + "/ca-gregorian.json", function (json) {
$.each(json.main.@(System.Threading.Thread.CurrentThread.CurrentCulture.Name).dates.calendars.gregorian.days.format.short, function (key, val) {
dayNames.push(val);
});
$.each(json.main.@(System.Threading.Thread.CurrentThread.CurrentCulture.Name).dates.calendars.gregorian.months["stand-alone"].wide, function (key, val) {
monthNames.push(val);
});
dateFormat = json.main.@(System.Threading.Thread.CurrentThread.CurrentCulture.Name).dates.calendars.gregorian.dateFormats.medium;
console.log(dateFormat); //Output: y-MM-dd
});
console.log(dateFormat); //Output:

最佳答案

问题是 $.getJSON() 是异步调用。函数外部的 console.log(dateFomrat) 在函数完成之前运行。代码在 $.getJSON() 运行时继续,因此当第二个(外部)console.log() 时,不会设置 dateFormat执行。

关于javascript - 函数作用域外的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31591922/

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