Это использует функциональность curl_multi. Он не работает параллельно обычным способом, о котором вы думаете. Он работает путем опроса обратного вызова для curl, а затем возврата, когда заданное вами обещание c выполнено. Все другие обещания, которые разрешаются во время процесса опроса, завершаются и кэшируются в соответствующем обещании, ожидая, пока вы не позвоните, ожидайте. Библиотека curl - это то, что открывает несколько сокетов и обрабатывает параллелизм для вас.
Если вы хотите базовый пример того, как это работает, я поместил пример проекта на github, который состоит из 2 классов. https://github.com/kwhat/requestful
первые 7 методов - это все, что требуется для настройки интерфейса обещания. Все маги c здесь основаны на двух обратных вызовах, переданных конструктору, а также обертках вокруг обратных вызовов then / cancel.
Метод sendRequestAsyn c параллельные запросы curl созданы. Волшебство c все происходит в обратном вызове для wait () для любого обещания, которое вызывает анонимную функцию , которая intern вызывает метод tick в al oop. Этот метод tick () разрешает все обещания, независимо от того, какой вызов вызывается.