Skip to content
Closed
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ReactAndroid/src/main/java/com/facebook/react/bridge/BUCK
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ rn_android_library(
proguard_config = "reactnative.pro",
provided_deps = [
react_native_dep("third-party/android/support/v4:lib-support-v4"),
react_native_dep("third-party/android/support-annotations:android-support-annotations"),
],
required_for_source_only_abi = True,
visibility = [
Expand Down
101 changes: 86 additions & 15 deletions ReactAndroid/src/main/java/com/facebook/react/bridge/Promise.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,48 +7,119 @@

package com.facebook.react.bridge;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;

/**
/*
* Interface that represents a JavaScript Promise which can be passed to the native module as a
* method parameter.
*
* Methods annotated with {@link ReactMethod} that use {@link Promise} as type of the last parameter
* Methods annotated with {@link ReactMethod} that use a {@link Promise} as the last parameter
* will be marked as "promise" and will return a promise when invoked from JavaScript.
*/
public interface Promise {

/**
* Successfully resolve the Promise.
* Successfully resolve the Promise with an optional value.
*
* @param value Object
*/
void resolve(@Nullable Object value);

/**
* Report an error which wasn't caused by an exception.
* Report an error without an exception using a custom code and error message.
*
* @param code String
* @param message String
*/
void reject(String code, String message);

/**
* Report an exception.
* Report an exception with a custom code.
*
* @param code String
* @param throwable Throwable
*/
void reject(String code, Throwable e);
void reject(String code, Throwable throwable);

/**
* Report an exception with a custom error message.
* Report an exception with a custom code and error message.
*
* @param code String
* @param message String
* @param throwable Throwable
*/
void reject(String code, String message, Throwable e);
void reject(String code, String message, Throwable throwable);


/**
* Report an error which wasn't caused by an exception.
* @deprecated Prefer passing a module-specific error code to JS.
* Using this method will pass the error code "EUNSPECIFIED".
* Report an exception, with default error code.
* Useful in catch-all scenarios where it's unclear why the error occurred.
*
* @param throwable Throwable
*/
@Deprecated
void reject(String message);
void reject(Throwable throwable);

/* ---------------------------
* With userInfo WritableMap
* --------------------------- */

/**
* Report an exception, with default error code.
* Report an exception, with default error code, with userInfo.
* Useful in catch-all scenarios where it's unclear why the error occurred.
*
* @param throwable Throwable
* @param userInfo WritableMap
*/
void reject(Throwable throwable, WritableMap userInfo);

/**
* Reject with a code and userInfo WritableMap.
*
* @param code String
* @param userInfo WritableMap
*/
void reject(Throwable reason);
void reject(String code, @Nonnull WritableMap userInfo);

/**
* Report an exception with a custom code and userInfo.
*
* @param code String
* @param throwable Throwable
* @param userInfo WritableMap
*/
void reject(String code, Throwable throwable, WritableMap userInfo);

/**
* Report an error with a custom code, error message and userInfo,
* an error not caused by an exception.
*
* @param code String
* @param message String
* @param userInfo WritableMap
*/
void reject(String code, String message, @Nonnull WritableMap userInfo);

/**
* Report an exception with a custom code, error message and userInfo.
*
* @param code String
* @param message String
* @param throwable Throwable
* @param userInfo WritableMap
*/
void reject(String code, String message, Throwable throwable, WritableMap userInfo);

/* ------------
* Deprecated
* ------------ */

/**
* Report an error which wasn't caused by an exception.
*
* @deprecated Prefer passing a module-specific error code to JS.
* Using this method will pass the error code "EUNSPECIFIED".
*/
@Deprecated
void reject(String message);
}
Loading