@NonNull
	public <E extends T> E await(@NonNull final E response)
			throws RequestFailedException, DeviceDisconnectedException, BluetoothDisabledException,
			InvalidRequestException {
		assertNotMainThread();

		final T vc = valueCallback;
		try {
			with(response).await();
			return response;
		} finally {
			valueCallback = vc;
		}
	}
Synchronously waits until the request is done. The given response object will be filled
with the request response.
<p>
Callbacks set using {@link #before(BeforeCallback)}, {@link #done(SuccessCallback)} and
{@link #fail(FailCallback)} will be ignored.
<p>
This method may not be called from the main (UI) thread.

@param response the response object.
@param <E>      a response class.
@return The response with a response.
@throws RequestFailedException      thrown when the BLE request finished with status other
                                    than {@link android.bluetooth.BluetoothGatt#GATT_SUCCESS}.
@throws IllegalStateException       thrown when you try to call this method from the main
                                    (UI) thread.
@throws DeviceDisconnectedException thrown when the device disconnected before the request
                                    was completed.
@throws BluetoothDisabledException  thrown when the Bluetooth adapter is disabled.
@throws InvalidRequestException     thrown when the request was called before the device was
                                    connected at least once (unknown device).
@see #await(Class)
ble/src/main/java/no/nordicsemi/android/ble/SimpleValueRequest.java