Javascript Phonegap全球化API

Javascript Phonegap全球化API,javascript,cordova,ibm-mobilefirst,Javascript,Cordova,Ibm Mobilefirst,团队,我正在构建worklight应用程序并使用corodova全球化API。现在发生的情况是,我无法将success callback函数中的值返回到调用此函数的函数中。但在使用alert()后返回值时,情况也是如此。如果我在下面的实现中出错,你能纠正我吗 Hybrid.formatCurrencyVal = function(sVal){ var sOut; //alert(sVal); navigator.globalization.num

团队,我正在构建worklight应用程序并使用corodova全球化API。现在发生的情况是,我无法将success callback函数中的值返回到调用此函数的函数中。但在使用alert()后返回值时,情况也是如此。如果我在下面的实现中出错,你能纠正我吗

Hybrid.formatCurrencyVal = function(sVal){
      var sOut;

         //alert(sVal);
         navigator.globalization.numberToString(
         Number(sVal),
        // function (sVal) {sOut=sVal.value; sVal= sOut;},
         function (sVal) {sOut=sVal.value; sVal=sOut;},
         function () {alert('Error getting number\n');},
         {type:'decimal'}

       ); 
         alert(sOut);





         return sOut;




      };
试试这个

document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
       Hybrid.formatCurrencyVal();   
    }
试试这个

document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
       Hybrid.formatCurrencyVal();   
    }

onSuccess回调将异步启动。这意味着在调用“numberToString”之后,代码的其余部分将继续。因此,您无法确定,在返回sOut时,onSuccess函数是否已经启动

相反,您应该这样做:

var onSuccess = function(callbackNumber) {
    // do something with callbackNumber
}

navigator.globalization.numberToString(
    number,
    onSuccess,
    function () {alert('Error getting number\n');},
    {type:'decimal'}
);  

onSuccess回调将异步启动。这意味着在调用“numberToString”之后,代码的其余部分将继续。因此,您无法确定,在返回sOut时,onSuccess函数是否已经启动

相反,您应该这样做:

var onSuccess = function(callbackNumber) {
    // do something with callbackNumber
}

navigator.globalization.numberToString(
    number,
    onSuccess,
    function () {alert('Error getting number\n');},
    {type:'decimal'}
);  

调用Hybrid.formatCurrencyVal onDeviceReadycan您可以用一个代码示例解释您应该添加整个JS文件实现;不需要调用onDeviceReady,因为它已经是Worklight应用程序的一部分。只需将函数impl放在wlCommonInit()外部,并在wlCommonInit()内部调用函数本身。同样,如果您添加应用程序的整个JS文件,这会更有意义。call Hybrid.formatCurrencyVal OnDeviceradyCan您可以用一个代码示例解释您应该添加整个JS文件实现;不需要调用onDeviceReady,因为它已经是Worklight应用程序的一部分。只需将函数impl放在wlCommonInit()外部,并在wlCommonInit()内部调用函数本身。同样,如果你添加应用程序的整个JS文件,这会更有意义。哥们,我只是想试试这个,如果我破解了,我希望你能得到你想要的最好的东西,否则我们可以离线讨论:)为什么不,有什么问题吗?哥们,我只是想试试这个,如果我破解了,我希望你得到你想要的最好的东西,否则我们可以离线讨论:)为什么不,有什么问题吗?这对两个阿米特都没有帮助:(这对两个阿米特都没有帮助:(