无法将数据传递给函数(jQuery)

用户名

我试图将结果成功传递给另一个函数,并且它只是返回一个未定义的值:

function tagCustomer(email, tags) {
   var o = new Object();
   o.tags = tags;
   o.email = email;
   o.current_tags = getCustomerTags(email);
   o.new_tags = tags;
   console.log(o);
   return true;
}

function returnData( data ) {
    return data;
}

function getCustomerTags(email) {
   $.ajax({
      url: "xxx.io/index.php",
      type: "POST",
      dataType: "json",
      data: {email: email, "action": "getCustomerTags"},
      contentType: "application/x-www-form-urlencoded; charset=utf-8",
      success: function (data) {
      returnData( data );
         return data;
      }     
   });
}

o.current_tags应该得到的结果getCustomerTags

谢伊·埃尔卡亚姆(Shay Elkayam)

尝试一下(这对UI不利,但是使用您当前的代码也可以使用,另外,请查看我答案底部的“更好的实践”):

function getCustomerTags(email) {
    var result = null;
    $.ajax({
        url: "xxx.io/index.php",
        type: "POST",
        dataType: "json",
        async: false,
        data: {
            email: email,
            "action": "getCustomerTags"
        },
        contentType: "application/x-www-form-urlencoded; charset=utf-8",
        success: function (data) {

            result = data;
        }

    });
    return result;
}

您的代码无法正常工作的原因是$ .ajax成功函数返回了datavar,但未getCustomerTags返回任何内容。另外,请注意“ async:false”,因为如果将其用作异步,则该函数将返回null,因为它将在ajax完成之前返回。

更好的实践
ajax函数具有一个回调(成功),请使用它!设计您的代码不是将其设计为等待ajax请求结果的方法,而是将其设计为在完成时会执行某些操作的ajax请求!

function tagCustomer(email, tags, data) {
   var o = new Object();
   o.tags = tags;
   o.email = email;
   o.current_tags = data
   o.new_tags = tags;
   console.log(o);
   return true;
}

function getCustomerTags(email, tags) {
   $.ajax({
      url: "xxx.io/index.php",
      type: "POST",
      dataType: "json",
      data: {email: email, "action": "getCustomerTags"},
      contentType: "application/x-www-form-urlencoded; charset=utf-8",
      success: function (data) {
          tagCustomer(email, tags, data);
      }     
   });
}

如果您还有其他疑问,请随时发表评论。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

OpenCV:无法正确将数据传递给函数

来自分类Dev

无法在 jquery 中使用 Ajax 将数据传递给 php 函数

来自分类Dev

将多个表单数据传递给jquery函数

来自分类Dev

将额外的数据传递给函数

来自分类Dev

无法将数据传递给方法

来自分类Dev

Node.js Http.Request回调-无法将数据传递给父函数

来自分类Dev

Node.js Http.Request回调-无法将数据传递给父函数

来自分类Dev

JavaScript-将数据传递给匿名函数

来自分类Dev

将数据传递给lodash map()函数-功能组件

来自分类Dev

坚持如何将数据传递给函数

来自分类Dev

将文件数据传递给函数

来自分类Dev

将已解析的重复数据传递给函数

来自分类Dev

如何将Firebase数据传递给函数

来自分类Dev

将数据传递给反应映射函数

来自分类Dev

无法通过ajax将json数据传递给php

来自分类Dev

无法将ViewBag数据传递给AngularJS

来自分类Dev

无法将数据传递给AngularJS组件指令

来自分类Dev

JSF 无法将数据传递给 bootsrtap 模式

来自分类Dev

无法通过 AJAX 将数据传递给 Laravel

来自分类Dev

Ajax JQuery将数据传递给POST方法

来自分类Dev

将openpyxl数据传递给熊猫

来自分类Dev

将数据传递给Laravel事件

来自分类Dev

将变量数据传递给ValidationAttribute

来自分类Dev

将数据传递给createApp(vue)

来自分类Dev

Flutter:将数据传递给状态

来自分类Dev

Titanium将数据传递给createHTTPClient

来自分类Dev

将数据传递给AsynTask

来自分类Dev

将数据传递给服务-Android?

来自分类Dev

将数据传递给javascript图表