草庐IT

应不应该

全部标签

javascript - 使用 redux 时应该如何在 react 组件中处理取消订阅?

在我的组件中,我有以下内容:componentWillMount:function(){this.unsubscribe=store.subscribe(function(){this.setState({message:store.getState().authentication.message});}.bind(this));},componentWillUnmount:function(){this.unsubscribe();},不调用取消订阅会导致以下错误:Warning:setState(...):Canonlyupdateamountedormountingcompon

javascript - JavaScript 应该抛出什么类型的异常?

在JavaScript中应该抛出什么类型的对象?我看到很多examples它抛出一个普通的旧string并且似乎有一个半标准的Error类型。我应该更喜欢其中之一吗? 最佳答案 Error对象和特定的错误对象(例如TypeError)在ECMAScript规范中已完全标准化。但是,大多数浏览器都提供这些对象的通用非标准属性。只要您的错误处理代码知道如何处理您抛出的对象,您就可以抛出任何您喜欢的东西,但是使用Error对象有以下优点:与处理原生代码抛出的错误保持一致,例如具有message属性,因此您不必编写不同的代码来处理原生错误和

javascript - 在 Javascript 中,我应该在加载新实例后删除上一级别的实例吗?

我制作了一个包含许多小关卡的HTML5游戏。当玩家到达门口时,会加载另一个关卡。当一个关卡正在加载时,它基本上只是将所有实例数组设置为[],然后通过创建事物的新实例将内容插入其中,例如:enemies=[]//thishaspreviouslybeenfullofpointersfromtheoldlevelfor(i=0;i但是,我注意到仅仅设置一个充满指向[]的指针的数组并不会真正删除实例!那么,javascript会自动执行此操作吗?还是我必须自己删除每个实例? 最佳答案 如果数组中的对象不再被任何地方引用,那么它们将被垃圾回

javascript - 我应该在异步函数中抛出错误还是返回被拒绝的 promise ?

这个问题在这里已经有了答案:ShouldanasyncAPIeverthrowsynchronously?(5个答案)关闭5年前。我正在履行AWSJSSDK提供的promise.当我创建一个包装AWSSDK的异步函数时,我正在做的事情的要点如下所示:module.exports.myCustomFunction=input=>{if(badInput){thrownewError('failed')//{//carryon}).catch(err=>{//dosomethingwiththeerror})有人找到我,他说我永远不应该在这些基于promise的函数中抛出错误。他们建议改为

javascript - 在 Observable 上使用 await 时,我应该使用什么来代替 toPromise()?

Thispage说“toPromise已被弃用!(RxJS5.5+)”但我最近一直在使用AngularFire2(当我只想要一个结果时),如下所示:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();我不应该这样做吗?如果不是,await替代方案是什么?更新:在下面的答案之后我改变了这个:constfoo=awaitthis.afs.doc(`docPath`).valueChanges().toPromise();...为此:constfoo=await(newPromise(resolve=>this.a

javascript - 为什么 JS hash/dict 中的 "key"部分应该是一个字符串?

在大多数JSON序列化器/反序列化器中,javascript字典/哈希数组中的“键”部分被写为字符串。使用字符串作为键与仅键入预期名称相比有什么好处?例如,假设我定义了两个对象k1和k2如下:vark1={a:1,b:2,c:3};//definenamenormallyvark2={"a":1,"b":2,"c":3};//definenamewithastring然后我运行了以下测试:alert(k1==k2);//false(ofcourse)alert(k1.a==k2.a);//truealert(k1["b"]==k2["b"]);//truealert(uneval(k1

javascript - 我应该等待 ajax 完成重定向页面吗?

我知道如何等待ajax完成,但是如果我要在某些ajax调用被触发后重定向页面,我应该等待它们完成后再重定向吗?重要吗? 最佳答案 如果您确信ajax调用会成功,那么一旦ajax调用发生,就您的服务器而言,重定向不会影响它。但不要忘记,客户端可能会失去连接或出现许多错误,因此您可能应该等待以确保调用成功。另一件要考虑的事情是您的ajax调用是否会影响您要重定向到的任何页面。在那种情况下,在重定向之前一定要等待。您不希望您的用户因为连接速度慢或您的服务器出现故障而被重定向到损坏的页面。 关于

javascript - 我应该使用 IIFE 还是 window onload 来初始化?

以下两个代码片段都有效:在js文件中使用IIFE:(functioninitialize(){txtInput=document.getElementById('txtInput');txtResult=document.getElementById('txtResult');txtInput.value="0";txtResult.value="0";}());在html文件中的窗口加载事件上调用initialize():window.addEventListener('load',initialize,false);是一种比另一种更好的方法吗?在性能方面还是其他方面?就目前而言,我

javascript - 我什么时候应该在进口中使用括号

我有两个文件,第一个是todoHelper.js它有exportconstaddTodo=(list,item)=>[...list,item]稍后我想在另一个文件中使用addTodo,我只需执行import{addTodo}from'./todoHelpers'但我也看到人们在做默认导出而不是仅仅导出。有什么区别? 最佳答案 每个文件只能有一个导出默认值,因此当您像这样导出默认值时exportdefaultAddTodo=(list,item)=>[...list,item]你可以导入它importMyAddTodofrom'./

javascript - rxjs 科目应该在类里面公开吗?

假设我有两个类,您可以在其中观察一些可观察值。第一个例子,带有公共(public)主题:classEventsPub{publicreadonlyonEnd=newSubject();}第二个例子,私有(private)主题和注册方法:classEventsPriv{privatereadonlyendEvent=newSubject();publiconEnd(cb:()=>void):Subscription{returnthis.endEvent.subscribe(cb);}}第一个示例在某种程度上是不安全的,因为任何人都可以从类外部调用eventsPub.endEvent.n