从另一个web服务的Success函数调用c# web服务
本文关键字:web 服务 函数调用 Success 另一个 | 更新日期: 2023-09-27 18:15:53
我的问题很简单。你能从另一个web服务的Success函数中调用c# web服务吗?我认为答案是否定的。
我有一个登录webservice,当用户试图做一些需要用户登录的事情时调用。然后调用另一个web服务,当操作完成时,它不会进入onSuccess函数。我认为它不能这样做?这是正确的吗?
示例代码,不是实际代码。
webservice.login(onLoginSuccess)
function onLoginSuccess(){
webservice.doSomething(onDoSomethingSuccess)
}
function onDoSomethingSuccess(){
.... does not get here.
}
这是它的基本代码。
客户端JavaScript调用,登录webservice成功。
function onLoginSuccess(result){
negotiateWithUser(true,
activeUser.id,
negotiation.dateID,
activeUser.showChat,
true);
}
function negotiateWithUser() {
<code>
if (justLoggedIn) updateDateData();
<code>
}
function updateDateData(){
if (populate==false){
populate=true;
WebService.Negotiations.DatesGet(activeUser.id,SucceededtoCallbackDateRefresh, ErrorHandler);
}
}
不进入successdedtocallbackdaterefresh函数,即使返回数据并且没有错误。
我想我知道问题是什么,在negotiateWithUser函数中,updateDateData被调用,执行控制被交还给negotiateWithUser函数,而不是进入SucceededtoCallbackDateRefresh成功函数,因为它是一个异步调用。我认为某种回调函数是必需的。
我通过在onLoginSuccess函数中调用setInterval()中的updataDateData函数来解决问题。
function onLoginSuccess(result){
if (negotiate) {
timerInterval = setInterval("updateDateData()", 300);
}
}
它的工作原理。如果有人有更优雅的方法,我会很感兴趣。
谢谢。
如何使用jQuery.ajax()?
function Func1() {
$.ajax({
url:'MyWebService.asmx/Func1',
success:Func1Success,
error: function () {
alert('there was an error!');
},
});
return false;
}
function Func1Success(output){
$.ajax({
url:'MyWebService.asmx/Func2',
success:Func1SuccessToSuccess,
error: function () {
alert('there was an error!');
},
});
}
function Func1SuccessToSuccess() {
return false;
}
你绝对可以。
只是给一个理论上的建议/建议,你可以有一个本地变量作为第一个web服务方法的状态响应,你可以有一个布尔值,代表第一次调用的成功。然后,如果你的本地变量匹配你的成功条件,你可以依次调用另一个web服务方法。
我所提供的只是一个想法,对于更具体的答案,我建议你发布你正在工作的实际代码。
谢谢。
我假设你在服务器上使用。cs文件,然后从android调用它们。如果这就是你正在做的,那么有一种方法可以在另一个方法成功时调用一个方法。只需创建两个.cs文件,分别表示x和y,并将其存储在服务器上。然后从android (x)中调用其中一个,然后让object of y in x,就这样了。如。这是我的一个。cs文件,名为abc.cs,它将从android调用。
[WebMethod]
public xyz IsLoggedIn()
{
xyz example = new xyz();
//do something
.
.
return example;
}
现在xyz.cs将是:
[WebMethod]
public void onSuccessofIsLoggedIn()
{
//do something
.
.
}
我希望这有助于....所有这些都只是基于假设…请清楚你使用的是什么,我们也会在我们的答案中更清楚。