本文整理匯總了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;
}