33 * @author Sebastian Castro - sebastian.castro@picknik.ai
44 */
55
6- import { EventEmitter } from "eventemitter3" ;
76import { GoalStatus } from "./GoalStatus.ts" ;
87import {
98 isRosbridgeActionFeedbackMessage ,
@@ -14,13 +13,12 @@ import Ros from "./Ros.js";
1413
1514/**
1615 * A ROS 2 action client.
17- * @template TGoal, TFeedback, TResult
1816 */
1917export default class Action <
2018 TGoal = unknown ,
2119 TFeedback = unknown ,
2220 TResult = unknown ,
23- > extends EventEmitter {
21+ > {
2422 isAdvertised = false ;
2523 #actionCallback: ( ( goal : TGoal , id : string ) => void ) | null = null ;
2624 #cancelCallback: ( ( id : string ) => void ) | null = null ;
@@ -42,7 +40,6 @@ export default class Action<
4240 name : string ;
4341 actionType : string ;
4442 } ) {
45- super ( ) ;
4643 this . ros = ros ;
4744 this . name = name ;
4845 this . actionType = actionType ;
@@ -73,22 +70,14 @@ export default class Action<
7370
7471 if ( resultCallback || failedCallback ) {
7572 this . ros . on ( actionGoalId , function ( message ) {
76- if ( message . result !== undefined && message . result === false ) {
77- if ( typeof failedCallback === "function" ) {
78- failedCallback ( message . values ) ;
73+ if ( isRosbridgeActionResultMessage < TResult > ( message ) ) {
74+ if ( ! message . result ) {
75+ failedCallback ?.( message . values ?? "" ) ;
76+ } else {
77+ resultCallback ?.( message . values ) ;
7978 }
80- } else if (
81- isRosbridgeActionFeedbackMessage ( message ) &&
82- typeof feedbackCallback === "function"
83- ) {
84- // @ts -expect-error -- can't do generic type guards in this file until it's migrated to typescript
85- feedbackCallback ( message . values ) ;
86- } else if (
87- isRosbridgeActionResultMessage ( message ) &&
88- typeof resultCallback === "function"
89- ) {
90- // @ts -expect-error -- can't do generic type guards in this file until it's migrated to typescript
91- resultCallback ( message . values ) ;
79+ } else if ( isRosbridgeActionFeedbackMessage < TFeedback > ( message ) ) {
80+ feedbackCallback ?.( message . values ) ;
9281 }
9382 } ) ;
9483 }
0 commit comments