Knockout.js KnockoutJS:等待所有限制的计算观察值被评估

Knockout.js KnockoutJS:等待所有限制的计算观察值被评估,knockout.js,throttling,Knockout.js,Throttling,是否有可能等到评估ViewModel中所有节流计算的观测值 我有一个很重的ViewModel,里面有很多这样的观测值。有时,我需要在从JSON填充后立即获得它的纯JS表示,但当我尝试这样做时,一些观察值还没有被计算 我曾尝试实现一种异步的toJS,但它没有按预期工作。我是做错了什么还是根本不可能 toJSasync = function (vm) { var deferred = $.Deferred(), waiter = ko.computed(function () {

是否有可能等到评估ViewModel中所有节流计算的观测值

我有一个很重的ViewModel,里面有很多这样的观测值。有时,我需要在从JSON填充后立即获得它的纯JS表示,但当我尝试这样做时,一些观察值还没有被计算

我曾尝试实现一种异步的
toJS
,但它没有按预期工作。我是做错了什么还是根本不可能

toJSasync = function (vm) {
  var deferred = $.Deferred(),
      waiter = ko.computed(function () {
         return ko.toJS(vm);
      });

  deferred.resolve( waiter() );

  deferred.always(function () {
    waiter.dispose();
  });

  return deferred.promise();
}

在计算机中解决延迟问题。您正在立即解决延迟问题,这将导致触发done函数。将解析移到computed函数中。在创建过程中,computed将被评估以检测依赖项。如果我将“resolve”移到内部,它将立即得到解决。您可以发布一个示例viewmodel吗?