web.script 循环访问js列表成员导致程序闪退的问题

光庆 2月前 390

godking.lunar 库调用了 web.script 库,使用中遇到了下面的问题:

import console; 
import godking.lunar
var lu = godking.lunar()

// 方法一:
// 查看2024年全年节假日列表,直接循环访问js列表对象进行操作,导致闪退。
var holidays = lu.HolidayUtil.getHolidays(2024); // 获取到js列表
for(i=1;holidays.length;1){
    console.dump("方法一:",holidays[i-1].toString()); // 循环访问js列表成员函数,导致闪退。屏蔽此句可调试后面的代码
}

// 方法二:
// 经过研究,在循环中访问js列表操作,会导致闪退。
// 但先将列表push到一个tabel中,再访问table中的js对象成员,就不闪退。
// 原因未知。
var holidays = lu.HolidayUtil.getHolidays(2024); // 获取到js列表
var t ={};
for(i=1;holidays.length;1){
    table.push(t,holidays[i-1]); // 将js列表成员push到table中
}
for(i=1;#t;1){
    console.dump("方法二:",t[i].toString()); // 循环访问table成员函数,没问题。
}

// 再次使用方法一:
// 奇怪的现象:方法二执行完毕后,再次执行方法一,也不闪退了。
// 原因未知。
var holidays = lu.HolidayUtil.getHolidays(2024);
for(i=1;holidays.length;1){
    console.dump("方法一:",holidays[i-1].toString());
}

console.pause(true);

总结:

1、读取js列表时,直接循环访问js列表成员的函数或属性,不稳定。

2、先将js列表成员push到table中,再循环访问table成员的函数或属性,暂无问题。

最新回复 (0)
返回