Skip to content
Browse files

Allow Animation EndResult callback to return Promise (#25793)

I am sending an asynchronous function as callback to the `.start` method of `Animation.parallel([...]).start(callback)`. Flow does not like this, as the `EndCallback` type is saying that these callbacks must return `void`. Since my callback returns `Promise<void>` this results in an error.

Does it really matter what the callback returns?

## Changelog

[General] [Changed] - Make Animation EndCallback type allow any return value
Pull Request resolved: #25793

Test Plan: I have run `yarn flow`, which reported no errors.

Reviewed By: cpojer

Differential Revision: D16515465

Pulled By: osdnk

fbshipit-source-id: 420d29d262b65471e6e1ad4b5a126bf728336260
  • Loading branch information...
draperunner authored and facebook-github-bot committed Jul 26, 2019
1 parent e78c013 commit bb623e698347756be83fa3bcfb37cb73aca5dee7
@@ -14,7 +14,7 @@ import type {TurboModule} from '../../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';

type EndResult = {finished: boolean};
type EndCallback = (result: EndResult) => void;
type EndCallback = (result: EndResult) => void | Promise<void>;

export type EventMapping = {|
nativeEventPath: Array<string>,
@@ -14,7 +14,7 @@ const NativeAnimatedHelper = require('../NativeAnimatedHelper');
import type AnimatedValue from '../nodes/AnimatedValue';

export type EndResult = {finished: boolean};
export type EndCallback = (result: EndResult) => void;
export type EndCallback = (result: EndResult) => void | Promise<void>;

export type AnimationConfig = {
isInteraction?: boolean,

0 comments on commit bb623e6

Please sign in to comment.
You can’t perform that action at this time.