Сначала выполняется ввод, и поэтому значение this._settings
по-прежнему равно нулю, чтобы оставить асинхронным, чтобы сначала выполнить настройки, а затем выполнить данные
edit: если я применяю тайм-аут на данные, даже если они имеют значение 1, будут работать нормально
// should be the first
@Input()
public set settings(value) {
if (value) {
this._settings = Object.assign(this.defaultSettings, value);
} else {
this._settings = Object.assign(this.defaultSettings);
}
}
@Input()
public set data(value: Array<any>) {
if (!value) {
this._data = [];
} else {
this._data = value.map((item: any) =>
typeof item === 'string' || typeof item === 'number'
? new ListItem(item)
: new ListItem({
id: item[this._settings.idField],
text: item[this._settings.textField],
})
);
}
}
Спасибо за помощь