Javascript JS中的我的字符串连接不是';行不通

Javascript JS中的我的字符串连接不是';行不通,javascript,string-concatenation,Javascript,String Concatenation,我试图连接两个字符串,但它没有做任何事情,控制台中也没有错误。所以很可能我太瞎了,看不到问题所在。。。 下面是我获取两个字符串的代码: $.get( "urlto/file.css", function(data) { cssOne = data; return cssOne; }, "html"); $.get( "urlto/otherfile.css", function(data) { cssTwo = data; return cssTwo; }, "

我试图连接两个字符串,但它没有做任何事情,控制台中也没有错误。所以很可能我太瞎了,看不到问题所在。。。 下面是我获取两个字符串的代码:

$.get( "urlto/file.css", function(data) {
    cssOne = data;
    return cssOne;
}, "html");

$.get( "urlto/otherfile.css", function(data) {
    cssTwo = data;
    return cssTwo;
}, "html");
下面是连接的方法:

function mergeCSS(){
    cssText = cssOne+" "+cssTwo;
return cssText;
}
这些变量都是全局变量,所以我认为这不会导致任何问题。 就像我说的也许我只是瞎了。。。有人知道为什么它不起作用吗?
Thx

Jquery是不同步的。所以你没有得到想要的结果。您可以使用同步JavaScript

您可以这样做:

$.get( "urlto/file.css", function(data) {
    cssOne = data;
    $.get( "urlto/otherfile.css", function(data) {
       cssTwo = data;
       var newCSS = mergeCSS();//call function here
    }, "html");
}, "html");

function mergeCSS(){
    cssText = cssOne+" "+cssTwo;
    return cssText;
}
更新:如果要在按钮上执行此操作,请单击以下按钮:

$("#buttonId").click(function(){
    $.get( "urlto/file.css", function(data) {
        cssOne = data;
        $.get( "urlto/otherfile.css", function(data) {
           cssTwo = data;
           var newCSS = mergeCSS(cssOne,cssTwo);//call function here
           alert(newCSS);
        }, "html");
    }, "html");
});

function mergeCSS(cssOne,cssTwo){
    cssText = cssOne+" "+cssTwo;
    return cssText;
}

这是一个延迟的对象争用问题。用于等待所有承诺得到解决。您的情况下不需要回调:

var p1 = $.get( "urlto/file.css", null, "html");
var p2 = $.get( "urlto/otherfile.css", null, "html");

$.when(p1,p2).done(function(r1,r2){
   cssText = r1 + r2;
});

发布完整的代码,我认为变量
cssOne
&
cssTwo
没有得到更新。何时调用
mergeCSS()
?取决于何时调用
mergeCSS()
$。get
是异步的(它是
$.ajax
的包装器)因此,仅当
$.get
完成时,才会调用success函数。很可能您在调用
mergeCSS
之前调用了它们。从回调返回值到异步操作(如
$.get()
)没有任何效果。我强烈怀疑这就是您的问题所在-您正在尝试在响应到达之前连接字符串。警报仍然只包含cssOne。注意:在第一个
.get
完成之前,这不会触发
.get
/otherfile.css
。在这种情况下,这会导致效率较低,并且如果您必须发出更多的
.get
请求,则完全无法管理。+1:这是一个比接受的答案好得多的答案,因为它会立即启动两个请求,而不是按顺序启动它们。