return promise in join/part method if callback is not defined
fix error handling