Executando verificação de segurança...
3

[DÚVIDA] Como implementar o Promise.any em PHP?

Antes de mais nada é necessário entender que o Promise.any é um método da classe Promise no JavaScript, ele recebe um array de Promises como input e retorna a Primeira Promise a ser executada.

Documentação do método

Dúvida

Investigando o código fonte do CEP Promise encontrei no arquivo src/cep-promise.js o método fetchCepFromServices que faz uma busca do cep em alguns serviços e retorna o primeiro resultado utilizando o Método Promise.any e gostaria de saber como implementar isso em PHP.

Carregando publicação patrocinada...
3

Quem sabe se vc usar swoole, vc terá algo async!

https://openswoole.com/

Open Swoole é uma solução assíncrona completa que possui suporte integrado para programação assíncrona via fibras/corrotinas, uma variedade de módulos de E/S multithread (HTTP Server, WebSockets, GRPC, TaskWorkers, Process Pools) e suporte para clientes PHP populares, como PDO para MySQL, Redis e CURL.

3

PHP não é asíncrono, assim não tem Promise.

Caso esteja trabalhando com filas tem o Job Batch do laravel.

É parecido mas você não pode colocar numa requisição por exemplo.

1

Calma aí meu jovem, não é bem assim, tecnicamente nem Javascript deveria ter Promisses se o critério for ser assincrono (sim, é um fato pouco conhecido, mas JS é uma linguagem sincrona) async e await são apenas açúcar sintático para emular assincronismo, PHP só não tem os açúcares sintáticos mas possui sim suporte a Promisses, toda linguagem turing complete em tese tem suporte a promises

1

Para o seu caso específico acredito que a biblioteca guzzle seja utíl, tendo em vista que irá consumir um serviço externo via HTTP.

Outra forma simples de conseguir o que deseja é usando as funções exec ou shell_exec chamando um script js [sic]

1
1