
SwooleCoroutineHttpClient::getDefer 메소드는 Deferred 객체를 반환합니다. 이 Deferred 객체는 비동기 요청이 완료되면 콜백 함수를 호출하지 않습니다. 대신, Deferred 객체의 then 메소드를 사용하여 콜백 함수를 등록해야 합니다.
Deferred 객체의 then 메소드는 두 개의 파라미터를 받습니다. 첫 번째 파라미터는 비동기 요청의 결과를 받을 변수입니다. 두 번째 파라미터는 비동기 요청이 완료되면 호출되는 콜백 함수입니다.
Deferred 객체를 사용하여 비동기 요청을 취소하는 방법은 cancel 메소드를 사용하는 것입니다. cancel 메소드를 호출하면 비동기 요청이 취소되고, Deferred 객체의 then 메소가 호출되지 않습니다.
예를 들어, 다음과 같이 Deferred 객체를 사용하여 비동기 HTTP 요청을 보내고 콜백 함수를 등록할 수 있습니다.
#hostingforum.kr
php
$client = new SwooleCoroutineHttpClient();
$defer = $client->getDefer('GET', 'http://example.com');
$defer->then(function ($response) {
echo $response->getStatusCode() . "n";
echo $response->getBody() . "n";
});
위 예제에서, Deferred 객체의 then 메소를 사용하여 콜백 함수를 등록하였습니다. 콜백 함수는 비동기 요청이 완료되면 호출됩니다.
Deferred 객체를 사용하여 비동기 요청을 취소하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$client = new SwooleCoroutineHttpClient();
$defer = $client->getDefer('GET', 'http://example.com');
// 비동기 요청을 취소합니다.
$defer->cancel();
위 예제에서, Deferred 객체의 cancel 메소드를 사용하여 비동기 요청을 취소하였습니다.
2025-04-30 13:47