2015-08-21 47 views
0

我可以將WL.Client.invokeProcedure(invocationData,options)的結果賦值給一個變量。如何分配給變量,來自WL.Client.invokeProcedure(invocationData,options)的響應?

function getCategory(){ 

     var invocationData = { 
      adapter : 'Go2needsSQL', 
      procedure : 'myLatLang', 
      parameters : [] 
     }; 
     var options = { 
      onSuccess : procedureSuccess, 
      onFailure : procedureFailure, 
      invocationContext: {} 
     }; 

     var r = WL.Client.invokeProcedure(invocationData, options); 
     alert(JSON.stringify(r)); 
     } 

     function procedureSuccess(result){ 

      return result; 

      } 

     function procedureFailure(){ 
      alert("Failed"); 
     } 

在上面的代碼中alert()給出了空的json響應。

回答

2

是的,你可以,但根據docs,它沒有返回值(undefined) 異步得到的結果,所以當你alert沒有結果作爲函數返回undefined

你必須使用時,程序已被調用這就是後來被稱爲成功處理程序:

function getCategory() { 
    var result; 
    var invocationData = { 
     adapter: 'Go2needsSQL', 
     procedure: 'myLatLang', 
     parameters: [] 
    }; 
    var options = { 
     onSuccess: procedureSuccess, 
     onFailure: procedureFailure, 
     invocationContext: {} 
    }; 

    result = WL.Client.invokeProcedure(invocationData, options); 

    alert(JSON.stringify(result)); ///this will alert nothing 
} 

function procedureSuccess(__result) { 
    result = __result; 
    alert(JSON.stringify(result)) //this will be okay 
} 

function procedureFailure() { 
    alert("Failed"); 
}