fixbug: task is async, add this.async() and done()