我正在编写一个使用缓存系统的nodejs/reactjs应用程序。 我遇到了一个错误,其中缓存中的数据从未被组件显示,我最终发现cache.isEmpty()
这行应该是cache.isempty()
。 在这种情况下,Javascript并没有抛出任何错误,只是停止执行。另一方面,如果我在其他地方打电话,在if语句之前说,它通常会抛出一个错误,并告诉我该函数没有被定义。这是为什么?Javascript在调用未定义的函数时不会引发错误
read: function (apiCall, data, cacheKey, ttl, putQuery, retrieveQuery) {
if (cache.expired(cacheKey, ttl)) {
console.log('cache is expired');
api.call(apiCall,data, (response) => {
console.log(response);
db[putQuery](response);
db[retrieveQuery](data, (result) => {
cache.set(cacheKey, result);
cache.refresh(cacheKey);
render();
});
});
} else if (cache.isEmpty()) {
console.log('cache is empty');
db[retrieveQuery](data, (result) => {
cache.set(cacheKey, result);
render();
});
}
console.log('cache is ready');
},
让我知道你是否需要更多的细节。
编辑:只是为了说清楚,两种情况之间的唯一区别是有一次函数在else if语句中调用,而另一次不是。在这两种情况下,调用发生的方式相同
*“JavaScript不是在这种情况下,抛出任何错误,但简单地停止执行。” *是的,它是。但是无论这个功能是在吃什么。 –
调用'undefined'作为一个函数将会*总是抛出一个错误。在发展的过程中,必须有某种处理/抑制它的东西。你应该追踪错误并找出发生的地方。 –
@ T.J.Crowder为什么它会显示它,如果我在if语句之外执行它? –