#node.js #mapping
Вопрос:
Я создаю переднее веб — приложение для проекта солидности, над которым работаю. Смысл состоял в том, чтобы научиться основательности, но я понял, что будет полезно также изучить интерфейс, чтобы публиковать свои проекты, поэтому я новичок в js.
У меня есть контракт на надежность, который может устанавливать допуск для нескольких пользователей и обновлять его с заданными пользователем интервалами. Я хотел бы создать карту для каждого пользователя, чтобы хранить данные о том, когда следует перезагрузить пособие. В настоящее время кажется, что самый простой способ-создать новую карту для каждой переменной, а затем связать каждую переменную с адресом. В идеале лучше было бы использовать одну карту.
Я хочу, чтобы это выглядело примерно так: переменный1[Адрес] = значение1 (или в идеале: карта[адрес].переменный1 = значение1; карта[адрес].переменный2 = значение2; и т. Д.). Я хочу, чтобы эти значения были переопределены, если пользователь устанавливает новое расписание, но в настоящее время значение просто добавляется в список. (т. Е. переменная 1[адрес] = 1-е значение, 2-е значение, но я хочу, чтобы 2-е значение заменило 1-е значение). Я также хотел бы быть справедливым для функций тайм-аута и расписаний работы узлов, если это возможно.
Способ, которым я сейчас пользуюсь, приведен ниже:
var cron_map = new map(); var timeout_map = {}; var rAmount_map = {}; var rPeriod_map = {}; var rInterval_map = {}; ... DaySubmit = async() =gt; { //DayTask[recurringAddress].stop(); //MonthTask[recurringAddress].stop(); const {Day, Month, Year, Hour, Minute, Interval, recurringAddress, recurringAmount} = this.state; var delay = await this.SharedWallet.methods.diffSeconds(Year, Month, Day, Hour, Minute).call({from: this.accounts[0]}); await this.SharedWallet.methods.setDaily(recurringAddress, Interval, Day, Month, Year, Hour, Minute).send({from: this.accounts[0]}); cron_map[recurringAddress] = cron_map[recurringAddress] || []; timeout_map[recurringAddress] = timeout_map[recurringAddress] || []; rInterval_map[recurringAddress] = rInterval_map[recurringAddress] || []; rPeriod_map[recurringAddress] = rPeriod_map[recurringAddress] || []; rAmount_map[recurringAddress] = rAmount_map[recurringAddress] || []; rInterval_map[recurringAddress].push(Interval); rPeriod_map[recurringAddress].push('Daily'); rAmount_map[recurringAddress].push(recurringAmount); timeout_map[recurringAddress].push(setTimeout(this.DSetCron_Map(recurringAddress, recurringAmount), delay*1000)); }