Improve error handling
This commit is contained in:
		@@ -121,6 +121,18 @@ class CommandBusClient implements CommandBusInterface
 | 
			
		||||
                $data = (array)($message->getData()['data']??[]);
 | 
			
		||||
                $this->emit(self::EVENT_NOTIFY, [ $event, $data ]);
 | 
			
		||||
                break;
 | 
			
		||||
            case Message::MSGTYPE_ERROR: // error
 | 
			
		||||
                $uuid = $message->getUuid();
 | 
			
		||||
                $error = $message->getData()['error'];
 | 
			
		||||
                if ($uuid === "") {
 | 
			
		||||
                    $this->emit('error', [ $error ]);
 | 
			
		||||
                } else {
 | 
			
		||||
                    if (array_key_exists($uuid, $this->pending)) {
 | 
			
		||||
                        $this->pending[$uuid]->reject(new \Exception($error));
 | 
			
		||||
                        unset($this->pending[$uuid]);
 | 
			
		||||
                    }                    
 | 
			
		||||
                }
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                $this->connection->end('{"msg":"error","data":{"error":"Unexpected message type"}}');
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +63,7 @@ class Message implements JsonSerializable
 | 
			
		||||
        if (!$json || empty($json['msg'])) {
 | 
			
		||||
            throw new MessageException("Invalid data");
 | 
			
		||||
        }
 | 
			
		||||
        return new Message($json['msg'], $json['data'], $json['uuid']);
 | 
			
		||||
        return new Message($json['msg'], $json['data'], $json['uuid']??"");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asResult($result): Message
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user