-3

我正在尝试编写一个 JavaScript 函数来检索与提供的电子邮件地址相对应的姓氏,但到目前为止没有成功。这是我的代码:

function getUsername(){

var username;

$(function(){
    var dataString = 'email=' + EMAIL_ADDRESS;

    $.ajax({
        url: 'user_crud_operations.php',
        data: dataString,
        dataType: 'json',
        success: function(data){
            U = data[1];
            username = data;          
        }
    });  
 });

return username;

}

我需要在其他地方的另一个函数中使用检索到的用户名。我哪里错了?

4

1 回答 1

0

异步函数(在 AJAX 中使用)通常不返回值,而是触发回调函数。

您必须重构您的设计,以便“getUserName()”传递给回调而不是返回值。例如:

function getUsername(handler) {
  // ...
  $.ajax({
    // ...
  }).done(function(username) {
    if (handler && (typeof(handler)==='function')) {
      handler(username);
    }
  });
}

// Sample usage...
getUsername(function(username) {
  alert("OK: username=" + username);
});
于 2013-08-26T21:34:20.277 回答