Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从异步调用返回响应_Javascript_Ajax_Asynchronous - Fatal编程技术网

Javascript 从异步调用返回响应

Javascript 从异步调用返回响应,javascript,ajax,asynchronous,Javascript,Ajax,Asynchronous,在我开始之前,我已经花了很长时间阅读以下内容: 我有一个硬编码变量,称为“d”,定义为2d数组: var d = [ ["05_001","05_002","05_003","05_004","05_005"], ["05_006","05_007","05_008","05_009","05_010"] ]; 我想使用ajaxget,这样就可以从数据库中获取值 我尝试了以下简单的解决方法: function foo(callback) { return $.ajax

在我开始之前,我已经花了很长时间阅读以下内容:

我有一个硬编码变量,称为“d”,定义为2d数组:

var d = [
    ["05_001","05_002","05_003","05_004","05_005"],
    ["05_006","05_007","05_008","05_009","05_010"]
];
我想使用ajaxget,这样就可以从数据库中获取值

我尝试了以下简单的解决方法:

function foo(callback) {
    return $.ajax({
        url: 'emoji.php?cat=emoticons_activity',
        success: callback
    });
}

var result;
foo(function(response) {
    result = response;
    alert(result);
});
但是即使我这样做了,我仍然被卡住了,因为我仍然需要将变量“d”的值设置为“foo”函数返回的值

我需要在该代码的上下文中使用该代码:

tinymce.PluginManager.add("emoticons_travel_places", function(a, b) {
    function c() {
        var a;
        return a = '<table role="list" class="mce-grid">', tinymce.each(d, function(c) {
            a += "<tr>", tinymce.each(c, function(c) {
                var d = b + "/img/" + c + ".svg";
                a += '<td><a href="#" data-mce-url="' + d + '" data-mce-alt="' + c + '" tabindex="-1" role="option" aria-label="' + c + '"><img src="' + d + '" style="width:30px; height:30px" role="presentation" /></a></td>'
            }), a += "</tr>"
        }), a += "</table>"
    }

    var d = [
        ["05_001","05_002","05_003","05_004","05_005","05_006","05_007","05_008","05_009","05_010","05_011","05_012","05_013","05_014","05_015","05_016","05_017","05_018","05_019","05_020"],
        ["05_021","05_022","05_023","05_024","05_025","05_026","05_027","05_028","05_029","05_030","05_031","05_032","05_033","05_034","05_035","05_036","05_037","05_038","05_039","05_040"],
        ["05_041","05_042","05_043","05_044","05_045","05_046","05_047","05_048","05_049","05_050","05_051","05_052","05_053","05_054","05_055","05_056","05_057","05_058","05_059","05_060"],
        ["05_061","05_062","05_063","05_064","05_065","05_066","05_067","05_068","05_069","05_070","05_071","05_072","05_073","05_074","05_075","05_076","05_077","05_078","05_079","05_080"],
        ["05_081","05_082","05_083","05_084","05_085","05_086","05_087","05_088","05_089","05_090","05_091","05_092","05_093","05_094","05_095","05_096","05_097","05_098","05_099","05_100"],
        ["05_101","05_102","05_103","05_104","05_105","05_106","05_107","05_108","05_109","05_110","05_111","05_112","05_113","05_114","05_115"]
    ];

    a.addButton("emoticons_travel_places", {
        type: "panelbutton",
        panel: {
            role: "application",
            autohide: !0,
            html: c,
            onclick: function(b) {
                var c = a.dom.getParent(b.target, "a");
                c && (a.insertContent('<img src="' + c.getAttribute("data-mce-url") + '" width="30" height="30" alt="' + c.getAttribute("data-mce-alt") + '" />'), this.hide())
            }
        },
        tooltip: "Emoticons - Travel & Places"
    })
});
tinymce.PluginManager.add(“表情、旅行、地点”),函数(a、b){
函数c(){
var a;
返回a='',tinymce.each(d,函数(c){
a+=“”,tinymce.each(c,function(c){
变量d=b+“/img/”+c+“.svg”;
a+=''
}),a+=“”
}),a+=“”
}
变量d=[
["05_001","05_002","05_003","05_004","05_005","05_006","05_007","05_008","05_009","05_010","05_011","05_012","05_013","05_014","05_015","05_016","05_017","05_018","05_019","05_020"],
["05_021","05_022","05_023","05_024","05_025","05_026","05_027","05_028","05_029","05_030","05_031","05_032","05_033","05_034","05_035","05_036","05_037","05_038","05_039","05_040"],
["05_041","05_042","05_043","05_044","05_045","05_046","05_047","05_048","05_049","05_050","05_051","05_052","05_053","05_054","05_055","05_056","05_057","05_058","05_059","05_060"],
["05_061","05_062","05_063","05_064","05_065","05_066","05_067","05_068","05_069","05_070","05_071","05_072","05_073","05_074","05_075","05_076","05_077","05_078","05_079","05_080"],
["05_081","05_082","05_083","05_084","05_085","05_086","05_087","05_088","05_089","05_090","05_091","05_092","05_093","05_094","05_095","05_096","05_097","05_098","05_099","05_100"],
["05_101","05_102","05_103","05_104","05_105","05_106","05_107","05_108","05_109","05_110","05_111","05_112","05_113","05_114","05_115"]
];
a、 addButton(“表情、旅行、地点”{
键入:“panelbutton”,
专家组:{
角色:“应用程序”,
自动隐藏:!0,
html:c,
onclick:函数(b){
var c=a.dom.getParent(b.target,“a”);
c&(a.insertContent(“”),this.hide()
}
},
工具提示:“表情符号-旅行和地点”
})
});
其中,
var d=…
位被AJAX调用返回的内容替换

我无法重写整个代码,因为TinyMCE插件系统正在使用它


我感觉自己很接近,但一直被卡住,已经断断续续地做了几天。

我最终得到了答案,使用Timmce自己的
tinymce.util.XHR.send

tinymce.util.XHR.send({
    url: 'emoji.php?cat=emoticons_travel_places',
    success: function(returnedData) {
        MyData = JSON.parse(returnedData);
        d = MyData;
       }
});
答复如下:


通过tinymce文档了解更多信息

No@idiot您无法从异步代码返回。您必须进行请求同步(在UI线程上不建议使用此功能),或者在成功回调中运行
a.addButton
code。