gpt4 book ai didi

knockout.js - 如何在调试时从可观察对象中找到所有订阅函数

转载 作者:行者123 更新时间:2023-12-04 14:21:38 25 4
gpt4 key购买 nike

我正在调试我的 knockout 应用程序。在调试时我改变了一些可观察的值,比如

data.myObservable(true);

数据传递到我的函数的地方。

此时,当我使用开发人员控制台中的范围分析变量时,我看到有 3 个订阅注册到该变量。

有没有办法找到这些订阅方法的位置。

最佳答案

由于它仅用于调试目的,您可以使用 private _subscriptions property on a subscribable .

这是一个例子:

const myObs = ko.observable();

const cb1 = function(newVal) { };
const cb2 = function(newVal) { };
const cb3 = function(newVal) { };

myObs.subscribe(cb1);
myObs.subscribe(cb2);
myObs.subscribe(cb3);

myObs(10);

console.log(
"There are",
myObs.getSubscriptionsCount(),
"subscribers to `myObs`:",
myObs._subscriptions.change.map(
({ callback: { name }}) => name
).join(", ")

)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-debug.js"></script>

当然,您也可以在设置可观察对象的行中放置一个断点,然后使用“step in to”来完成函数调用。如果您在调试器中“黑盒化”knockout.js,它应该会直接将您带到第一个订阅的方法。

关于knockout.js - 如何在调试时从可观察对象中找到所有订阅函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com