rxpoweredup
Version:
A Typescript RxJS-based library for controlling LEGO Powered UP hubs & peripherals.
28 lines (27 loc) • 669 B
JavaScript
import { Subject, from, of, switchMap, tap } from 'rxjs';
export class TaskWithoutResponse {
message;
result;
constructor(message) {
this.message = message;
this.result = new Subject();
}
discard() {
this.result.complete();
}
dispose() {
return void 0;
}
accept(visitor) {
visitor.visitTaskWithoutResponse(this);
}
emitError(error) {
this.result.error(error);
}
execute(channel) {
return of(null).pipe(switchMap(() => from(channel.sendMessage(this.message))), tap(() => {
this.result.next();
this.result.complete();
}));
}
}