[英]Calling a C# webservice from the Success function of another Webservice?
我的問題很簡單。 您可以從另一個Web服務的“成功”功能調用C#Web服務嗎? 我認為答案是否定的。
我有一個登錄Web服務,當用戶嘗試執行需要該用戶登錄的操作時,將調用該登錄Web服務。此操作將調用另一個Web服務,當操作完成時,它不會進入onSuccess函數。 我以為它不能這樣做? 這個對嗎?
示例代碼,而不是實際代碼。
webservice.login(onLoginSuccess)
function onLoginSuccess(){
webservice.doSomething(onDoSomethingSuccess)
}
function onDoSomethingSuccess(){
.... does not get here.
}
這是它的基本代碼。
在客戶端JavaScript調用上,登錄Web服務成功。
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);
}
}
即使返回了數據並且沒有錯誤,也不會進入函數SucceededtoCallbackDateRefresh。
我想我知道問題出在哪里,在notifyWithUser函數中調用了updateDateData,將執行控制權交還給notifyWithUser函數,而不是轉到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)調用其中之一,然后在x中創建y的對象,這就是全部。 例如 這是我的一個名為abc.cs的.cs文件,我會從android調用它。
[WebMethod]
public xyz IsLoggedIn()
{
xyz example = new xyz();
//do something
.
.
return example;
}
現在xyz.cs將是:
[WebMethod]
public void onSuccessofIsLoggedIn()
{
//do something
.
.
}
我希望這會有所幫助...。盡管這只是假設,但...請清楚您使用的是什么,我們的回答也將更加清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.