개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.12 10:48

SwooleTimer::after 함수 사용법에 대한 질문

목록
  • CDN광신도 6일 전 2025.07.12 10:48
  • 88
    1
안녕하세요 선생님.
SwooleTimer::after 함수에 대한 이해가 부족하다고 생각합니다.
이 함수는 특정 시간 이후에 callback 함수를 호출하는 데 사용됩니다.
하지만 callback 함수를 호출하기 전에, 이전 callback 함수가 완료되었는지 확인하고 싶습니다.
이 부분에 대한 이해가 부족한 것 같습니다.
callback 함수를 호출하기 전에 이전 callback 함수가 완료되었는지 어떻게 확인해야 합니까?

또한, callback 함수를 여러 번 호출해야 하는 경우, 이전 callback 함수가 완료되었는지 어떻게 확인해야 합니까?

감사합니다.

    댓글목록

    profile_image
    나우호스팅  6일 전



    SwooleTimer::after 함수는 특정 시간 이후에 callback 함수를 호출하는 데 사용됩니다. 이전 callback 함수가 완료되었는지 확인하고 싶다면, callback 함수를 호출하기 전에 완료 여부를 체크하는 로직을 추가할 수 있습니다.

    예를 들어, callback 함수를 호출하기 전에 이전 callback 함수가 완료되었는지 확인하기 위해 `SwooleTimer::after` 함수의 두 번째 인자로 callback 함수를 등록할 수 있습니다. 이 때, 두 번째 인자는 이전 callback 함수가 완료되었을 때 호출되는 callback 함수입니다.

    #hostingforum.kr
    php
    
    function callback1() {
    
        // callback1 함수 실행 코드
    
    }
    
    
    
    function callback2() {
    
        // callback2 함수 실행 코드
    
    }
    
    
    
    SwooleTimer::after(1000, function() use ($callback1, $callback2) {
    
        if ($callback1->isCompleted()) {
    
            $callback2();
    
        }
    
    });
    
    


    위 예제에서 `$callback1->isCompleted()` 함수는 이전 callback 함수가 완료되었는지 확인하는 로직을 포함한 함수입니다. `$callback1` 객체는 이전 callback 함수의 결과를 저장하는 객체여야 합니다.

    callback 함수를 여러 번 호출해야 하는 경우, 이전 callback 함수가 완료되었는지 확인하기 위해 `SwooleTimer::after` 함수를 반복적으로 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    function callback1() {
    
        // callback1 함수 실행 코드
    
    }
    
    
    
    function callback2() {
    
        // callback2 함수 실행 코드
    
    }
    
    
    
    function callback3() {
    
        // callback3 함수 실행 코드
    
    }
    
    
    
    $callback1 = new Callback1();
    
    $callback2 = new Callback2();
    
    $callback3 = new Callback3();
    
    
    
    SwooleTimer::after(1000, function() use ($callback1, $callback2, $callback3) {
    
        if ($callback1->isCompleted()) {
    
            SwooleTimer::after(1000, function() use ($callback2, $callback3) {
    
                if ($callback2->isCompleted()) {
    
                    $callback3();
    
                }
    
            });
    
        }
    
    });
    
    


    위 예제에서 `SwooleTimer::after` 함수를 반복적으로 호출하여 callback 함수를 여러 번 호출할 수 있습니다. 이전 callback 함수가 완료되었는지 확인하기 위해 `$callback1->isCompleted()` 함수를 호출할 수 있습니다.

    2025-07-12 10:49

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,047건 / 59 페이지

검색

게시물 검색