Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.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 nodejs中的mobx:观察原语数组_Javascript_Typescript_Mobx - Fatal编程技术网

Javascript nodejs中的mobx:观察原语数组

Javascript nodejs中的mobx:观察原语数组,javascript,typescript,mobx,Javascript,Typescript,Mobx,我是mobx的新手,我一直在用我自己的方式处理文档。在阅读了observable和autorun之后,我创建了一个小型测试平台,在本地使用该功能 在nodejs 13.12和mobx 5.15.4中执行以下代码时,autorun函数只调用一次。它不会对最后一行作出反应,在最后一行中数字会被更新 const mobx = require('mobx') const {observable, autorun} = mobx; // just to make sure it is imported

我是mobx的新手,我一直在用我自己的方式处理文档。在阅读了
observable
autorun
之后,我创建了一个小型测试平台,在本地使用该功能

在nodejs 13.12和mobx 5.15.4中执行以下代码时,autorun函数只调用一次。它不会对最后一行作出反应,在最后一行中数字会被更新

const mobx = require('mobx')
const {observable, autorun} = mobx;

// just to make sure it is imported
console.log(observable);


var numbers = observable([1, 2, 3]);
autorun(() => {
    console.log(numbers);
});
numbers.push(4);
这似乎是本地运行时特有的问题。起初,我对这个问题的措辞更为笼统,但在浏览器中执行时,代码工作正常。这只是上面的一个特定示例,它在nodejs中失败。非常感谢@felixmosh指出该问题无法在浏览器中重现

就像@observer decorator/函数一样,autorun将只观察在所提供函数执行期间使用的数据

事实上,我已经运行了你的代码,自动运行的效果和预期的一样

//示例2,原语数组
//观察计算值、工作
常数{
可见的,
计算,
自动运行
}=mobx;
var数=可观察([1,2,3]);
自动运行(()=>{
控制台日志(编号);
});
数字推送(4)//自动运行不会触发

哦,你说得对。但在我的环境中,它真的不起作用。我正在用typescript编译它,并在node中执行它。它似乎是特定于运行时的,我将相应地更新我的问题