团队,我对并行调用活动有疑问。
我知道可以使用Async.function
并行调用活动。
对于我的用例,我想在收到所有活动的结果后并行调用n个活动,我想进入下一个状态,它可以是另一个活动或决策任务。
但是在这里,它给了我一个promise对象,类似于java中的未来。如果我们编写 promise.get() 来获得结果,但它阻塞了线程。
我需要一些类似于事件驱动的时尚,而不会阻塞线程。
希望你理解我的问题!!
加上伟大的龙的回答。
您可以使用< code>Promise.anyOf以阻塞方式等待集合中单个promise的完成。
您不必使用.get()
。
在Promise中,您可以注册一个回调函数,以便在结果可用或返回错误时调用。
您可以根据需要使用以下方法之一:
这种风格类似于Java的CompletableFuture。
/**
* Returns Promise that contains a result of a function. The function is called with the value of
* this Promise when it is ready. #completeExceptionally is propagated directly to the returned
* Promise skipping the function.
*
* <p>Note that no blocking calls are allowed inside of the function.
*/
<U> Promise<U> thenApply(Functions.Func1<? super V, ? extends U> fn);
/**
* Returns Promise that contains a result of a function. The function is called with the value of
* this Promise or with an exception when it is completed. If the function throws a {@link
* RuntimeException} it fails the resulting promise.
*
* <p>Note that no blocking calls are allowed inside of the function.
*/
<U> Promise<U> handle(Functions.Func2<? super V, RuntimeException, ? extends U> fn);
/**
* Returns a new Promise that, when this promise completes normally, is executed with this promise
* as the argument to the supplied function.
*
* @param fn the function returning a new Promise
* @param <U> the type of the returned CompletionStage's result
* @return the Promise that completes when fn returned Promise completes.
*/
<U> Promise<U> thenCompose(Functions.Func1<? super V, ? extends Promise<U>> fn);
/**
* Returns a new Promise that, when this promise completes exceptionally, is executed with this
* promise's exception as the argument to the supplied function. Otherwise, if this promise
* completes normally, then the returned promise also completes normally with the same value.
*
* @param fn the function to use to compute the value of the returned CompletionPromise if this
* CompletionPromise completed exceptionally
* @return the new Promise
*/
Promise<V> exceptionally(Functions.Func1<Throwable, ? extends V> fn);
亲活性 这意味着,onActivityResult()将在作为该子片段的父片段的片段内部调用refresh。作为连锁反应,refreshDeliveryFragment()将调用这两个子片段中的一个子片段来刷新它们的recyclerview数据。
我有第一活动,它通过意图调用第二活动 在SecondActivity完成后,我希望SecondActivity向FirstActivity发送一些变量。然后调用finsih(),它将返回到第一个活动。如何使SecondActivity发送变量并在FirstActivity中获得结果?
我在Codeigniter中的会话比我在“配置/constants.php”文件中指定的时间更短。我将这个常数设置为3600秒(一小时),但有时我会在5或10分钟内被踢出。这发生在常规的MVC调用中,不涉及ajax。 我正在尝试访问CI会话中的last_activity值,但这是CI文档当前的状态:“last_activity:取决于存储,没有直接的方法。抱歉!” 那么,我如何访问该值呢?有什么想
在自动化的同时,我打开了几个浏览器,比如火狐 有没有办法获取活动浏览器的和webdriver本身?阿皮姆也有同样的问题。是否可以获取活动设备的会话id和驱动程序本身(虚拟或真实)?
我有个错误 //类别2是片段
我在活动2中有一个字符串 我想在activity1的文本字段中插入此字符串。我该怎么做?