草庐IT

javascript - 我可以假设 promise 中的错误会冒泡到新的 Promise 并捕获它吗?

我有一个函数,如果找到任何内容,它将查找缓存,否则它将继续获取数据并设置缓存。这是非常标准的。我想知道错误是否发生在最内部的函数中,它会一直冒泡到最外层的Promise吗?所以,我可以只用一个catch而不是一个。这是我的代码。我正在使用Bluebirdvar_self=this;returnnewPromise(function(resolve,reject){_self.get(url,redisClient).then(functiongetCacheFunc(cacheResponse){if(cacheResponse){returnresolve(JSON.parse(ca

javascript - 导入模块只是为了运行它

我有一个JavaScript文件,它为我正在使用的表单验证库注册了验证器。这些验证器可以通过该库访问,所以我不需要将它导入任何地方,我只需要确保它运行一次。如何在es6中以这种方式导入模块?项目中执行此操作的最佳位置是什么?我目前在我的主js文件中有它,一切都在那里启动,但该文件与表单或数据验证无关,所以感觉有点尴尬 最佳答案 HowdoIimportamoduleinsuchawayines6?你可以使用import'validators/register';仅针对其副作用导入模块。What'sthebestplaceinapro

javascript - 如何找到没有 html 标签的文本并用 p 元素包装它

我有以下HTML代码。我想查找并替换没有HTML标记的文本,并使用jQuery将其包装在p元素中。有没有办法实现我的目标?MytasksLoremipsumdolorsitamet,consetetursadipscingelitrLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitLoremipsumdolorsitamet,consetetursadipscingelitr 最佳答案 为此,您需要找到子文本节点并将它们包装在中标签。为此,

javascript - 将 30 分钟添加到 Date 会导致它返回 30 分钟

我有一个等于00:30的JavascriptDate对象,并且在执行时:date.setMinutes(date.getMinutes()+30);使日期对象等于00:00。有人知道为什么会这样吗?这里是使用代码的地方:for(vari=openTime;i').val(time).text(time));}上面的脚本创建了一个可用时间列表,从上午10:00一直到第二天凌晨02:00。它运行良好,直到在多次成功迭代后到达午夜00:00。有人能帮忙吗?谢谢!答案/解决方案:此问题是由于夏令时问题引起的,因此本周六时钟会拨快。出于某种奇怪的原因,在将30分钟添加到12:30时,它会使用.s

javascript - 是否有必要/建议在尝试删除 eventHandler 之前检查它是否存在?

我有这样的东西:if(something){init();}else{document.addEventListener('CUSTOM_EVENT',init,false);}varinit=function(){document.removeEventListener('CUSTOM_EVENT',init,false);//dostuff}我是否需要在removeEventListener调用周围添加某种检查?如果是这样,我可以这样做:vareventAdded=false;if(something){init();}else{document.addEventListener(

javascript - 这个 javascript 函数是如何调用的,它使用什么模式?

我在示例代码中遇到了这种类型的函数,它看起来被广泛使用。但我不知道如何调用它,或者事实上,它代表什么模式。l=function(a1){someVar={someFn:function(a2){console.log(a1);console.log(a2);}}}我将如何执行someFn?这与闭包有关吗?更新:这就是代码的使用方式。正如@joseph-the-dreamer所猜测的那样,它被用作模块的一部分,其中:App.module("Module",function(a1){someVar={someFn:function(a2){console.log(a1);console.l

javascript - 为什么在将 javascript 函数分配给不同的 var 后不能通过其原始名称访问它?

varf=functionfoo(){console.log("hello");};f();foo();这会产生一个错误:“Exception:ReferenceError:fooisnotdefined”但是“foo”被定义了。为什么会这样?我知道这是一个函数表达式,“f()”是用来访问这个函数的。但这不是匿名函数,我确实有这个函数的名称。为什么我无法使用其名称访问该函数? 最佳答案 MDN-函数表达式语法varmyFunction=function[name]([param1[,param2[,...,paramN]]]){st

javascript - 无法绑定(bind)到 'ngSwitchDefault',因为它不是 'ng-template' 的已知属性

我得到错误:Can'tbindto'ngSwitchDefault'sinceitisn'taknownpropertyof'ng-template'在我继续之前:这不是Angular2-"Can'tbindto'ngSwitchWhen'sinceitisn'taknownpropertyof'template'."的副本ngSwitchWhen的绑定(bind)非常好,就像我使用它的方式一样。问题出在ngSwitchDefault上,我只能在它的语法建议版本*ngSwitchDefault中使用它。但是由于我在这个问题上有另一个结构指令(*ngIf),我想使用“Template-[

javascript - 更改 Button 元素的类以显示/隐藏它

我正在尝试根据代码中的特定条件显示或隐藏按钮元素。我已使用display:none将按钮的默认css设置为“隐藏”它,然后添加一个将显示更改为display:block的类。HTML:SHOWCSS:#show{display:none;}#show.visible{display:block;}JS:vard=document.getElementById('show');d.className+="visible";我也试过:vard=document.getElementById('show');d.classList.add("visible");还有:documnet.get

javascript - jeditable - 在运行时禁用它

是否可以在运行时为表禁用jeditable?案例:我为用户设置了不同的步骤,表格始终可见,但应该只需一步即可编辑。用户可以随意切换步骤。我在jeditable文档中一无所获。我试图删除触发类,但在初始化后,它不会影响“可编辑性”(“可编辑性”更像德语而不是英语,但我想你理解我的意思;))。谢谢! 最佳答案 这是一个例子。希望能帮到你:$(document).ready(function(){$(".editable").editable("http://www.example.com/save.php";,{indicator:''