Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在knockout.js中执行所有ObservalArray依赖项后执行函数_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 如何在knockout.js中执行所有ObservalArray依赖项后执行函数

Javascript 如何在knockout.js中执行所有ObservalArray依赖项后执行函数,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个耳环。我想在从ObservalArray中删除或添加一个项,并在完成其所有依赖项订阅调用后执行一个函数。比如: observableArray.push(newObject); //I can't put my function call at this point because if any subscription is.. //with newObject or observableArray will execute asynch, and i.. //want m

我有一个耳环。我想在从ObservalArray中删除或添加一个项,并在完成其所有依赖项订阅调用后执行一个函数。比如:

 observableArray.push(newObject);

 //I can't put my function call at this point because if any subscription is..
 //with newObject or observableArray will execute asynch, and i.. 
 //want my function to execute after all such subscription execution.  

有没有办法在淘汰赛中做到这一点

我认为事件是异步触发的,所以我写了以下内容 :

但它不起作用。似乎所有回调都是同步处理的,即一旦修饰符函数(
push()
)返回,所有回调都已返回。因此,您只需在操作数组后设置标志:


我不确定
observableArlay.push()
是否会返回true,但试一试

if (observableArray.push(newObject)) {
    console.log(observableArray);
}

更新后你想做什么?您可以在foreach绑定中定义在数组项更改时触发的回调。-见附注7。这是您想要的吗?我想更新一个标志,我也在ObservalArray操作(push、pop…等)后执行的依赖项中使用该标志,因此,我希望只有在完成可观察数组和插入到数组中的新项的所有依赖项执行后,才更新此标志。您在谈论什么依赖项订阅?当您创建新对象时,它们不是已经被激发了吗?您能创建一个JSFIDLE来说明您的意思吗?谢谢您的回答,但如果它包含一个示例,您能详细说明您的建议吗
aList.push("Qoo");
flag = "CHANGED";
console.log("Flag is now " + flag);
if (observableArray.push(newObject)) {
    console.log(observableArray);
}