implement abort method for promise