我已经为此networkx GitHub做过准备,我的真实应用中的情况非常相似。
数据的到达时间晚于 public static void DetectAndSaveCollision(string value, object lockObject)
{
var acquired = false;
try
{
acquired = Monitor.TryEnter(lockObject);
}
finally
{
if (acquired)
{
Monitor.Exit(lockObject);
}
else
{
lock (lockObject)
{
CollisionCollection.Add(Thread.CurrentThread, value);
}
}
}
}
的显示/设置时间。
我已经尝试手动触发changeDetection,但这也不能解决问题。
有什么快速提示吗?
当我单击有效的“示例”和“同步案例”时,我已经获得了最初关注的建议。但是,“异步情况”不是这种情况。我想要相同的行为。
答案 0 :(得分:1)
它正在工作,但是由于出现错误而崩溃。
您只需要警惕null:
private _filter(value: string): string[] {
const filterValue = value.toLowerCase();
// Here this.options can be null, so you get error when you .filter on null
return this.options ? this.options.filter(option => option.toLowerCase().includes(filterValue)) : this.options;
}
答案 1 :(得分:1)
您需要像下面那样替换代码-
options: string[] = [];
@Input('options') set onOptions(options: string[]){
this.options = options;
this.initAutoComplete()
}
filteredOptions: Observable<string[]>;
ngOnInit() {
this.initAutoComplete();
}
initAutoComplete(){
this.filteredOptions = this.myControl.valueChanges
.pipe(
startWith(''),
map(value => this._filter(value))
);
}