An async callback wrapper