【发布时间】:2021-09-01 13:02:27
【问题描述】:
在理解代码执行流程方面需要帮助。
在调用下面的sayHi() 方法时,首先执行onSuccess 处理程序,然后执行return 语句。
我的理解是该函数将立即返回,然后onSuccess 处理程序将被执行。
public String sayHi() {
sayHello().onSuccess(s -> {
System.out.println(s);
});
return "hi";
}
public Future<String> sayHello() {
String s1 = "hello";
return Future.succeededFuture(s1);
}
编辑:我试图将它与 JavaScript Promises 进行比较,其中传递给 then 方法的函数总是在其余语句执行后执行。就像调用下面的test 方法会打印'hi','bye' 和then 'Success'
var promise2 = new Promise((resolve, reject) => {
resolve("Success!")
});
function test() {
console.log("hi");
promise2.then((value) => {
console.log(value);
});
console.log("bye");
}
【问题讨论】:
标签: javascript java asynchronous future vert.x