All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ratpack.exec.Promise Maven / Gradle / Ivy

There is a newer version: 2.0.0-rc-1
Show newest version
/*
 * Copyright 2014 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package ratpack.exec;

import ratpack.func.Action;

/**
 * A promise for a value that will be available later.
 * 

* A promise allows what is to be done with the value to be specified without having the value available. * They are a common alternative to callbacks in asynchronous programming. * *

Testing

*

* To test code that uses promises, see the {@code ratpack.test.exec.ExecHarness} class. * * @param the type of promised value */ public interface Promise extends SuccessPromise { /** * Specifies the action to take if the an error occurs trying to produce the promised value. * * @param errorHandler the action to take if an error occurs * @return A promise for the successful result */ SuccessPromise onError(Action errorHandler); /** * {@inheritDoc} */ @Override void then(Action then); default void asResult(Action> resultHandler) { onError(t -> resultHandler.execute(Result.failure(t))).then(v -> resultHandler.execute(Result.success(v))); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy