change callback to promise

i have change callback to promise and all unit test pass