<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # EventDispatcher 事件派發,框架基礎,用于事件的傳遞。 ## Event Event是描述一個事件。 * type 事件類型 * data 事件內容 * fromInfo 消息來源方資料 * toInfo 消息接收方資料 * progress 派發的進度 我們通過new Event($type,$data)創建一個Event對象,額外方法: * getType() 獲取類型 * getData() 獲取內容 * getProcessId() 獲取來源方的進程id * getFromInfo($type) 獲取來源方的資料 * setFromInfo($type,$data) 設置來源方資料 * getToInfo($type) 獲取接收方資料 * setToInfo($type,$data) 設置接收方資料 * getProgress() 獲取進度 * setProgress($progress) 設置進度 ## EventDispatcher 消息派發器 * addEventDispatcher(AbstractEventDispatcher $eventDispatcher) 添加一個派發器類型 * getEventDispatcher(string $name): ?AbstractEventDispatcher 獲取一個派發器類型 * listen($type, ?EventCall $eventCall = null, $once = false): EventCall 監聽事件返回EventCall ,once代表是否只是一次監聽 * remove($type, EventCall $eventCall) 移除某個類型的某個監聽 * removeAll($type = null) 移除某個類型的所有監聽 * dispatchEvent(Event $event) 派發事件,只在本進程 * dispatchProcessEvent(Event $event, Process ... $toProcess) 向某些進程派發事件 * dispatchProcessIdEvent(Event $event, $toProcessIds) 向某些進程派發事件 * getEventCalls($type): ?array 獲取某個類型的所有EventCall 項目中默認注冊了2種事件派發器,一是TypeEventDispatcher,另一個是ProcessEventDispatcher,派發器之間有嚴格的傳遞關系,傳遞進度會在Event中的progress表現出來,此外Event的toInfo對象決定使用哪種派發器。處理過程大概如下: >事件生成過程 用戶調用setToInfo設置接收方資料 事件準備過程 TypeEventDispatcher調用setFromInfo寫入來源信息 ProcessEventDispatcher調用setFromInfo寫入來源信息 事件派發過程 ProcessEventDispatcher調用setToInfo讀取接受方信息 調用setProgress設置進度 TypeEventDispatcher調用setToInfo讀取接受方信息 調用setProgress設置進度 ## EventCall * call(callable $fuc) 一般通過這個方法接收事件 * wait($timeout = 5) 堵塞的接收事件 ## 例子 獲取事件派發器 ~~~ $eventDispatcher = Server::$instance->getEventDispatcher(); ~~~ 發出一個事件 ~~~ $eventDispatcher->dispatchEvent(new ConfigChangeEvent()); ~~~ 監聽事件 ~~~ $call = $eventDispatcher->listen(ConfigChangeEvent::ConfigChangeEvent); $call->call(function (ConfigChangeEvent $result) { }); ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看