JavaScript返回的行为不符合预期
我有一个基本的JavaScript返回的行为不符合预期,javascript,return,return-value,Javascript,Return,Return Value,我有一个基本的jQuery功能: $(document).on('click', '#myElement', function(){ alert( getItemDescription('2') ); }); 调用My函数,并按预期运行以下操作: function getItemDescription(id){ $.post("item_description.php", {id:id}, function () { // ...
jQuery
功能:
$(document).on('click', '#myElement', function(){
alert( getItemDescription('2') );
});
调用My函数,并按预期运行以下操作:
function getItemDescription(id){
$.post("item_description.php", {id:id},
function () {
// ...
})
.done(function (data) {
return data;
})
.fail(function () {
return 'error';
});
}
当我在console窗口中查看network选项卡时,
.post()
成功地从item\u description.php
中检索到正确的信息。然而,我的原始功能--警报
只是回复未定义的
--我已经阅读了JS
中的退货手册,并阅读了许多关于S.O.的帖子--退货
应该能够返回文字不是吗?这个简单的脚本我没有看到什么?如何将从getItemDescription
检索到的变量数据
放入警报
?您的第二个函数目前不返回任何内容,您需要的是
function getItemDescription(id){
return $.post("item_description.php", {id:id},
function () {
// ...
})
.done(function (data) {
return data;
})
.fail(function () {
return 'error';
});
}
你要做的是打电话进去,好了。一个例子是:
function getItemDescription(id,f){
$.post("item_description.php", {id:id},
function (data) {
// ...
})
.done(function (data) {
f(data);
})
.fail(function () {
return 'error';
});
}
$(document).on('click', '#myElement', function(){
getItemDescription('2',alert);
});
在这种情况下,您也不应该使用.done,因为数据已经在上一个链式调用中检索到。如果你想抓住一切,就用。最后