1

团队,我正在构建一个工作灯应用程序并使用 corodova 全球化 API。现在发生的事情是无法将成功回调函数的值返回到调用此函数的函数。但是在使用 alert() 后返回值时同样有效。你能PL吗?如果在下面的实现中有错误,请纠正我?

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;




      };
4

2 回答 2

2

尝试这个

document.addEventListener("deviceready", onDeviceReady, false);
    function onDeviceReady() {
       Hybrid.formatCurrencyVal();   
    }
于 2013-10-17T12:31:55.503 回答
2

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'}
);  
于 2013-10-18T01:16:59.130 回答