Reputation: 35
public timerId;
delete(id){
this.timerId=id;
this.timerId = setTimeout(()=>{
//some logic
},5000);
}
undo(id){
this.timerId = id;
clearTimeout(this.timerId);
}
i want to delete multiple ids and undo(clearTimeout particular) id with delay. using this logic but failing help needed. Angular2
Upvotes: 0
Views: 2661
Reputation: 911
Maybe you could use an 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;
}
Upvotes: 1