当我用广播发送数据时,我遇到了这个问题,这是我的代码:
$rootScope.$broadcast('myEvent',{
data:"value"
});
和我的代码:
$scope.$on('myEvent', (event, args) => {
$scope.data = args.data;
console.log($scope.data);
});
console.log($scope.data);
问题是,console.log里面的函数显示了值,但外面我得到了未定义,我错过了什么? 感谢。
答案 0 :(得分:0)
这部分代码是异步回调:
(event, args) => {
$scope.data = args.data;
console.log($scope.data);
}
这意味着一旦myEvent
被触发,它就会运行。当浏览器加载该脚本和该特定行时,第二个console.log()将立即运行,并且这部分代码不是异步但是同步。因为在这种情况下你的代码会在你的事件被触发之前完全加载,你的第二个" console.log()将在" first"之前运行。之一。
我建议您阅读一些关于how callbacks work的内容。这是使用javascript时的核心模式之一,它将帮助您了解回调如何在您未来的任何工作中发挥作用。