Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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_Anonymous Function - Fatal编程技术网

javascript中的代码顺序

javascript中的代码顺序,javascript,anonymous-function,Javascript,Anonymous Function,我有一些使用匿名函数的javascript代码。我怀疑(但不确定)函数的调用与它们在代码中的顺序无关 app_service.callbackOfSomeKind( function (result) { console.log("result: 1" ); } ); app_service.AnotherCallback( function (result) { console.log("result: 2" ); } ); 如何确保结果1之后打印结果2???我如何确保

我有一些使用匿名函数的javascript代码。我怀疑(但不确定)函数的调用与它们在代码中的顺序无关

app_service.callbackOfSomeKind( function (result) {
    console.log("result: 1" );

} );

app_service.AnotherCallback( function (result) {
    console.log("result: 2" );

} );
如何确保结果1之后打印结果2???我如何确保JS在callbackOfSomeKind中的代码运行之前不会看到另一个回调?我正在考虑这样做:

app_service.callbackOfSomeKind( function (result) {
    console.log("result: 1" );

    app_service.AnotherCallback( function (result) {
        console.log("result: 2" );

    } );

} );

但是有更好的方法吗?

承诺很好,我建议研究它们,但是有一种方法可以通过使用命名回调而不是Anon来简化嵌套,而无需进行重大重构:

function someCallback(result) {
    console.log("result: 1" );
    app_service.AnotherCallback( someOtherCallback );
}

function someOtherCallback(result) {
    console.log("result: 2" );
} 


app_service.callbackOfSomeKind( someCallback );
通过这种方式,您仍然可以获得所需的执行顺序,但是没有难以维护和调试的嵌套anon回调。我想这是第一个和第二个示例之间的一种折衷,但降低了复杂性和关闭成本。

在这里:。但这是“实验性的”。