在函数之前访问它自己的对象属性 returns
Accessing its own object properties before function returns
在下面的代码中,forEach
循环中的匿名函数 运行 能够在其第一个 运行-through 中调用 subscription.dispose()
,在 buttonClicks.forEach(..)
已将订阅对象返回给 subscription
变量。
forEach(..)
如何在 forEach
完成 运行ning 至少一次之前访问它 returns 的对象?
function(button) {
var buttonClicks = Observable.fromEvent(button, "click");
// In the case of an Observable, forEach returns a subscription object.
var subscription =
buttonClicks.
forEach(function(clickEvent) {
alert("Button was clicked. Stopping Traversal.");
// Stop traversing the button clicks
subscription.dispose();
});
}
变量 subscription
已经声明。
会在forEach
returns之后初始化,在此之前是undefined
.
因此点击处理程序可以引用该变量。它不能做的实际上是调用 dispose
,因为它需要那个变量来保存一个值(但这不会发生,直到有人点击,然后 forEach
早就返回并且变量被赋值).
请注意,Observable#forEach
不会立即 运行 您传递给它的函数(与 Array#forEach
不同)。函数是 运行 每次 observable 发出一个值(这里:发生点击)。
另请注意,您稍后可以将 subscription
分配给其他对象,它会调用 dispose
。它并没有真正绑定到 forEach
返回的对象。单击处理程序将继续引用 变量,而不是变量创建时的 值。
在下面的代码中,forEach
循环中的匿名函数 运行 能够在其第一个 运行-through 中调用 subscription.dispose()
,在 buttonClicks.forEach(..)
已将订阅对象返回给 subscription
变量。
forEach(..)
如何在 forEach
完成 运行ning 至少一次之前访问它 returns 的对象?
function(button) {
var buttonClicks = Observable.fromEvent(button, "click");
// In the case of an Observable, forEach returns a subscription object.
var subscription =
buttonClicks.
forEach(function(clickEvent) {
alert("Button was clicked. Stopping Traversal.");
// Stop traversing the button clicks
subscription.dispose();
});
}
变量 subscription
已经声明。
会在forEach
returns之后初始化,在此之前是undefined
.
因此点击处理程序可以引用该变量。它不能做的实际上是调用 dispose
,因为它需要那个变量来保存一个值(但这不会发生,直到有人点击,然后 forEach
早就返回并且变量被赋值).
请注意,Observable#forEach
不会立即 运行 您传递给它的函数(与 Array#forEach
不同)。函数是 运行 每次 observable 发出一个值(这里:发生点击)。
另请注意,您稍后可以将 subscription
分配给其他对象,它会调用 dispose
。它并没有真正绑定到 forEach
返回的对象。单击处理程序将继续引用 变量,而不是变量创建时的 值。