@Override
    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {
        return new InjvmExporter<>(invoker, invoker.getUrl().getServiceKey(), exporterMap);
    }
@Test
    void testLocalProtocolAsync() throws ExecutionException, InterruptedException {
        DemoService service = new DemoServiceImpl();
        URL url = URL.valueOf("injvm://127.0.0.1/TestService")
                .addParameter(ASYNC_KEY, true)
                .addParameter(INTERFACE_KEY, DemoService.class.getName())
                .addParameter("application", "consumer")
                .setScopeModel(ApplicationModel.defaultModel().getDefaultModule());
        Invoker<?> invoker = proxy.getInvoker(service, DemoService.class, url);
        assertTrue(invoker.isAvailable());
        Exporter<?> exporter = protocol.export(invoker);
        exporters.add(exporter);
        service = proxy.getProxy(protocol.refer(DemoService.class, url));
        assertNull(service.getAsyncResult());
        assertEquals("DONE", FutureContext.getContext().getCompletableFuture().get());
    }