如何从WL.Client.invokeProcedure(invocationData,options)分配变量响应?

时间:2015-08-21 09:01:06

标签: javascript ibm-mobilefirst

我可以将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响应。

1 个答案:

答案 0 :(得分: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");
}
相关问题