Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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_Asp.net_C# 4.0_Web Applications - Fatal编程技术网

如何在javascript中完成第一次回调后执行第二次回调?

如何在javascript中完成第一次回调后执行第二次回调?,javascript,asp.net,c#-4.0,web-applications,Javascript,Asp.net,C# 4.0,Web Applications,我在谷歌上搜索了很多网站,找到了一种顺序回调的方法,即第二个函数应该在第一个函数完成后才执行。在我的例子中,我正在更新button click中节点的一些属性,每个属性更新都应该执行一个回调。我的问题是,一些属性更新是基于以前的属性的,我无法实现这一点。因为javascript在一个函数中执行 所以请给我指出正确的方向..如何在完成之前的回调后执行回调 提前谢谢 这是我的密码: function SetProperties() { var nodes = Control1.Get

我在谷歌上搜索了很多网站,找到了一种顺序回调的方法,即第二个函数应该在第一个函数完成后才执行。在我的例子中,我正在更新button click中节点的一些属性,每个属性更新都应该执行一个回调。我的问题是,一些属性更新是基于以前的属性的,我无法实现这一点。因为javascript在一个函数中执行

所以请给我指出正确的方向..如何在完成之前的回调后执行回调

提前谢谢

这是我的密码:

function SetProperties() {
        var nodes = Control1.GetNodesList();
        var ColorStyle = {
            Color: 'Red',
            ForeColor: 'Maroon',
            ColorAlphaFactor: '255',
            ForeColorAlphaFactor: '255',
            Type: '2',                
            PathBrushStyle: '1'
        };

         var LineStyle = {                
            LineColor: 'Blue',
            LineWidth: '2'
         };

         Control1.SetColorStyle(nodes[0].FullName, ColorStyle);
         Control1.SetLocation(nodes[0], 150, 300);
         Control1.SetRadius(nodes[0], 20);
         Control1.SetShading(nodes[0], true);
         Control1.SetSize(nodes[0], 150, 150);
         Control1.SetLabel(nodes[0], label);            
         Control1.SetLineStyle(nodes[0], LineStyle);
    }

如果理解,您可以在页面中定义隐藏字段

<input type='hidden' runat='server' id='funToCall'/>

这取决于第一个回调函数的工作方式。JavaScript实际上并不是一次执行所有代码,而是在单个线程中顺序执行。如果您的第一个回调在一系列命令中完成了所有工作,那么下一段代码只会在完成后开始执行

例如:

var a = 0;

function fun1() {
    a = 1;
}

function fun2() {
    alert(a);
}

fun1();
fun2();
将得出与以下相同的结果:

var a = 0;
a = 1;
alert(a);

因为
fun2
将在
fun1
完成执行后执行。

javascript在哪里?请更新您的问题以澄清您的问题。现在还不清楚这里到底出了什么问题。此外,JS中的函数无论如何都是逐个执行的。JS总是在一个线程中工作。因此,如果调用
function1();function2()
function2将仅在
function1
完成后执行。那么,现在如何调用回调?实际上,您可以在某个数组中注册所有回调,并在for循环中逐个执行它们。
var a = 0;

function fun1() {
    a = 1;
}

function fun2() {
    alert(a);
}

fun1();
fun2();
var a = 0;
a = 1;
alert(a);