Angular2 setTimeout 和 cleartimeout 动态/多个

Angular2 setTimeout and cleartimeout dynamically /multiple

public timerId;

delete(id){
   this.timerId=id;
   this.timerId = setTimeout(()=>{
  //some logic
  },5000);
}

undo(id){
  this.timerId  = id;
  clearTimeout(this.timerId);
}

我想删除多个 ID 并延迟撤消(clearTimeout 特定)ID。使用此逻辑但失败需要帮助。角度 2

也许你可以使用 Observable:

private subscriptions = {};

public delete(id) {
    const subscription = Observable.of(null)
        .delay(5000)
        .subscribe(() => {
            // logic here
        });
    this.subscriptions[id+''] = subscription;
}

public undo(id) {
    const subscription = this.subscriptions[id+'']
    if (subscription && !subsciption.isUnsubscribed) {
        subscription.unsubscribe();
    }
    this.subscriptions[id+''] = null;
}