本文整理汇总了TypeScript中expo-core.EventEmitter类的典型用法代码示例。如果您正苦于以下问题:TypeScript EventEmitter类的具体用法?TypeScript EventEmitter怎么用?TypeScript EventEmitter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了EventEmitter类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: watchHeadingAsync
export async function watchHeadingAsync(callback: HeadingCallback): Promise<object> {
// Check if there is already a compass event watch.
if (headingEventSub) {
_removeHeadingWatcher(headingId);
}
headingEventSub = LocationEventEmitter.addListener(
'Exponent.headingChanged',
({ watchId, heading }: { watchId: string, heading: HeadingData }) => {
const callback = watchCallbacks[watchId];
if (callback) {
callback(heading);
} else {
ExpoLocation.removeWatchAsync(watchId);
}
}
);
headingId = _getNextWatchId();
watchCallbacks[headingId] = callback;
await ExpoLocation.watchDeviceHeading(headingId);
return {
remove() {
_removeHeadingWatcher(headingId);
},
};
}
示例2: resolve
({ heading }: { heading: HeadingData }) => {
if (heading.accuracy > 1 || tries > 5) {
resolve(heading);
LocationEventEmitter.removeSubscription(headingSub);
} else {
tries += 1;
}
}
示例3: _removeHeadingWatcher
// Removes the compass listener and sub from JS and Native
function _removeHeadingWatcher(watchId) {
if (!watchCallbacks[watchId]) {
return;
}
delete watchCallbacks[watchId];
ExpoLocation.removeWatchAsync(watchId);
if (headingEventSub) {
LocationEventEmitter.removeSubscription(headingEventSub);
headingEventSub = null;
}
}
示例4: _removeWatcher
function _removeWatcher(watchId) {
// Do nothing if we have already removed the subscription
if (!watchCallbacks[watchId]) {
return;
}
ExpoLocation.removeWatchAsync(watchId);
delete watchCallbacks[watchId];
if (Object.keys(watchCallbacks).length === 0 && deviceEventSubscription) {
LocationEventEmitter.removeSubscription(deviceEventSubscription);
deviceEventSubscription = null;
}
}
示例5: _maybeInitializeEmitterSubscription
function _maybeInitializeEmitterSubscription() {
if (!deviceEventSubscription) {
deviceEventSubscription = LocationEventEmitter.addListener(
'Exponent.locationChanged',
({ watchId, location }: { watchId: string, location: LocationData }) => {
const callback = watchCallbacks[watchId];
if (callback) {
callback(location);
} else {
ExpoLocation.removeWatchAsync(watchId);
}
}
);
}
}
示例6: EventEmitter
error: TaskError | null,
executionInfo: {
eventId: string,
taskName: string,
},
}
interface RegisteredTask {
taskName: string,
taskType: string,
options: any,
}
type Task = (body: TaskBody) => void;
const eventEmitter = new EventEmitter(ExpoTaskManager);
const tasks: Map<string, Task> = new Map<string, Task>();
let isRunningDuringInitialization = true;
function _validateTaskName(taskName) {
if (!taskName || typeof taskName !== 'string') {
throw new TypeError('`taskName` must be a non-empty string.')
}
}
export function defineTask(taskName: string, task: Task) {
if (!isRunningDuringInitialization) {
console.error(`TaskManager.defineTask must be called during initialization phase!`);
return;
}
示例7: removeAllListeners
removeAllListeners(): void {
this._listenerCount = 0;
this._nativeEmitter.removeAllListeners(this._nativeEventName);
}
示例8: removeSubscription
removeSubscription(subscription: Subscription): void {
this._listenerCount--;
this._nativeEmitter.removeSubscription(subscription);
}
示例9: addListener
addListener(listener: Listener<M>): Subscription {
let subscription = this._nativeEmitter.addListener(this._nativeEventName, listener);
subscription.remove = () => this.removeSubscription(subscription);
this._listenerCount++;
return subscription;
}