我有一个“ for”循环,可在按钮单击时最多设置10个警报,在android上,它可以完美运行而没有任何问题,但是在iOS上,它仅设置循环中的最后一个警报,即使其打印“控制台中出现“成功”消息10次。经过一些测试(在每次迭代中添加超时)后,我相信在设置警报之前循环正在迭代。我尝试在“ ReactNative.scheduleAlarm”之前添加“ await”,但是它给出了一个错误,提示“不能在异步函数之外使用await关键字”。因此,我该怎么做才能等到计划警报功能完成后再进行迭代。
我正在使用“ react-native-alarm-notification”库来管理警报,而我使用的是RN 0.59.5。
for (i = index; i < this.props.prayers.PrayerTimes.length; i++ ){
fire_time = this.props.prayers.PrayerTimes[i][field.key]
fire_datee = this.props.prayers.PrayerTimes[i].date
ReactNativeAN.scheduleAlarm({
title: PrayersStr[field.key],
message: " ",
tag: field.key,
color: "white",
channel: "my_channel_id",
small_icon: "ic_launcher",
loop_sound: "true",
sound_name: sound,
fire_date: moment(fire_datee, 'DD/MM/YYYY').format('DD-MM-YYYY') + ' ' + fire_time
}).then(res => {
console.log("SUCCESS")
if (this.props.alarms == null){
Identity.setAlarms({ [field.key]: true })
} else {
if(this.props.alarms[field.key] != true){
Identity.setAlarms({ ...this.props.alarms, [field.key]: true })
}
}
}).catch(e => {
console.log('error', e);
});
}