gpt4 book ai didi

javascript - 阻止方法返回 'undefined'

转载 作者:行者123 更新时间:2023-11-28 15:20:42 25 4
gpt4 key购买 nike

我是回调新手,正在尝试使其正常工作。我不希望 getCustomerIdDescription 在我的帖子返回数据之前向我的弹出窗口返回任何内容,但我在底部的“callback(supplierId)”行上收到错误,提示“callback is not a function”我该如何编写我的回调,以便在我获得发布数据之前不会从 getCustomerIdDescription 返回任何内容?

这是我的代码

scope.showCustomerIdList = function(value) {
$('#{0}'.format(value)).popover({
html: true,
container: 'body',
content: function() {
return scope.getCustomerIdDescription(value);
},
title: function() {
return 'Customer ID - Description';
}
}).popover('show');
};

scope.getCustomerIdDescription = function(supplierId, callback) {
var model = {};
model.clientId = scope.contextClientId;
model.supplierId = supplierId;
$.post(scope.enumControllers.GetCustomerIdsForSupplier, model, function(response) {
if (response.error == false) {
var ids = JSON.parse(response.ids);
var list = '';
_.each(ids, function(result) {
list += '<li>' + result.CustomerId + ' - ' + result.CustomerDescription + '</li>';
});
return '<ul>' + list + '</ul>';
} else {
return "Cound't Fetch Customer Ids";
}
}).fail(function() {
return "Cound't Fetch Customer Ids";
});
callback(supplierId);
};

最佳答案

您调用:

scope.getCustomerIdDescription(value);

但你定义:

scope.getCustomerIdDescription = function(supplierId, callback) {

由于您没有向其传递值,因此回调未定义

那么你:

callback(supplierId);

…无需测试callback是否是一个函数。

或者:

  • 删除该行
  • 将其包装在一个测试中,以确保函数通过
  • 调用 getCustomerIdDescription 时,始终传递函数作为第二个参数

顺便说一句,如果您在发送 Ajax 请求后立即调用回调函数,那么在那里传递回调函数并没有多大意义。通常将其放在您根据请求设置的回调函数中更有意义。

关于javascript - 阻止方法返回 'undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31593928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com