implement client::call_async with callback