remove() {
        return new Promise(resolve => {
            let self = this,
                handler = () => {
                    self.node.removeEventListener('transitionend', handler, false);