【发布时间】:2020-08-03 12:53:57
【问题描述】:
从QiSDK 文档可以理解,async() 对Future<T> 的调用具有结果状态。
例如
var goto = GoToBuilder..
var operation = goto.async().run().thenConsume {
//if(it.isSuccess or it.hasError()) etc. statuses are available
}
//These statuses are also available in the $operation variable afterwards
if(operation.hasError()) {...}
但是当我们调用操作sync()
例如只是
var goto = GoToBuilder...
goto.run()
是否确保操作成功完成?
它是否还会锁定current Thread 或者我们应该了解sync() 调用的哪些信息?因为文档说,最佳实践是始终使用async(),但如果我不希望 Pepper 为操作创建 new Thread 并与代码一起处理它们怎么办。
【问题讨论】:
-
sync() - 它将等待任务完成。然后执行其他任务。 async() - 它不会等待任务完成。它并行执行其他任务,但它具有成功和错误的回调。你可以参考这个链接,developer.softbankrobotics.com/pepper-qisdk/principles/…
标签: android kotlin robot pepper