我在服务器端有一个重载的查询方法。我想知道是否可以重载异步回调,具体取决于方法签名?或者是否建议定义两个不同的asyncallbacks?这是我服务器的两种方法。
public String fetchInADay(String startTime, String endTime) {}
public String fetchInADay(String startTime, String endTime, String type) {}
顺便说一句,请评论:
如果我被要求进行两次不同的回调,这不符合OO的原则吗?
答案 0 :(得分:1)
我假设你打算重用onSuccess(String result)
中实现的逻辑。这可以很好地独立于您调用的服务方法。您甚至可以在多个呼叫中共享同一个实例。
由于javascript是单线程的,因此您可以确保多个异步调用的响应(onSuccess()
调用)不会相互干扰。但是由于这些调用的异步性质,它们的回调顺序将无法保证。
答案 1 :(得分:1)
在这种情况下无法重载异步回调,因为onSuccess方法将具有相同的签名。
您可以将相同的AsyncCallback对象传递给多个服务,但它无法分辨哪个服务或函数调用它。如果您希望不同的服务调用具有不同的行为,则需要两个不同的回调。