首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript返回不起作用吗?返回未定义的

Javascript返回不起作用吗?返回未定义的
EN

Stack Overflow用户
提问于 2012-03-11 10:48:54
回答 5查看 7.2K关注 0票数 0

我在javascript脚本上遇到了一个奇怪的问题。

这是我的代码:

代码语言:javascript
复制
function checkDiscountCode()
{

  var discountCode = $('#korcode').val();
  var errorMessage = $('#errorMessage').text();

  if(discountCode.length > 2)
  {

     $.getJSON( 'calc.php?code=' + discountCode, function( json ) 
     {    
       var color = json.color; 
       var soort = json.soort;
       var waarde = json.waarde; 
       var message = json.message;

       if(errorMessage != message)
       {
          $('#error').html('<font color="' + color + '" id="errorMessage">' + message + '</font>');
       }

       if(message == 'OK!')
       {
          var outputData = soort + '-' + waarde;
          console.log('outputData = ' + outputData);
          return outputData;
       }

     });   
  }   
}

控制台日志给出了正确的数据,例如0-12.00,但当我在另一个函数中请求此函数时,例如只有一个警报(checkDiscountCode());它显示未定义。

有谁能帮帮我吗?我看不出有什么问题..

提前感谢!

EN

Stack Overflow用户

发布于 2012-03-11 10:54:20

您正在从传递给异步工作的函数的回调中返回。您必须调整代码以接受回调,并更改调用方以处理异步回调这一事实。

这意味着,而不是这样:

代码语言:javascript
复制
// won't work
function checkSomething() {
    someAsynchronousFunction(function(result) {
        return result == "success";
    });
}
if(checkSomething()) {
    alert("It worked.");
}else{
    alert("It didn't work.");
}

您必须将您的代码更改为如下所示:

代码语言:javascript
复制
function checkSomething(callback) {
    someAsynchronousFunction(function(result) {
        callback(result == "success");
    });
}
checkSomething(function(result) {
    if(result) {
        alert("It worked.");
    }else{
        alert("It didn't work.");
    }
});
票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9651989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档