我有以下内容:
return function(callback) {
console.log(callback.toString())
SystemJS.import('app/shared/shared.js').then(function(result){
callbackFunction = callback;
callback(dashboard);
main();
});
}
这是作为动态 JS 调用的一部分加载的,
var script_func = new Function('ARGS','kbn','dateMath','_','moment','window','document','$','jQuery', 'services', result.data);
var script_result = script_func($routeParams, kbn, dateMath, _ , moment, window, document, $, $, services);
当我进入 script_func
时,它会将我带到为我的文件动态加载的 VM 文件 - 但当我尝试进入最后的 return 语句时,它只是跳到最后并将我返回到原始 script_result = script_func()
调用。
奖励积分:我不知道“动态”在这里是否是正确的术语——我不确定这在 JavaScript 中被称为什么,只是看到类似的东西被称为“动态加载”。如果我把它称为错误的东西,我很乐意得到纠正,这样我实际上可以找到一些关于此的教程:)
最佳答案
您可以单步执行script_func(...)
,因为有一个函数调用需要单步执行。您无法单步执行 return function() { ... }
,因为该行上没有发生函数调用。
类似地,您是否希望能够单步执行赋值操作my_func = function() { ... }
?你不能进入那里的任何东西,因为那里没有发生需要进入的调用。我正在创建一个函数对象并将其存储在 my_func
中。在调用之前,我无法单步执行存储在 my_func
中的函数。
在您的具体情况下,将创建一个函数对象并将其存储在script_result
中。如果您执行了 script_result(...)
,您就可以进入其中。
关于javascript - 为什么我不能作为动态加载脚本的一部分进入 `return function(){}`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47760333/