草庐IT

统一结果包装

全部标签

javascript - 将 promise 包装在 promise 中是一种反模式吗?

我尝试使用PromiseAPI编写代码以超时重新连接到数据库。我最终所做的是将连接到数据库的promise包装在一个promise中,但我不确定这是否是最好的做事方式。我认为可能有一种方法可以使用尝试连接到数据库的原始promise,但我无法弄清楚。functionconnect(resolve){console.log('Connectingtodb...');MongoClient.connect(url,{promiseLibrary:Promise}).then((db)=>resolve(db)).catch((err)=>{console.log('dbconnection

javascript - 进行第二次 http 调用并在同一个 Observable 中使用结果

我使用的是angular2,它是http组件。我想调用一个将返回元素列表的RESTAPI。该列表的大小限制为100个条目。如果有更多项,将在响应中设置一个hasMore标志。然后您必须使用参数page=2再次调用API。如果有一个Observable,同时包含两个服务器响应,那就太好了。我的代码看起来像这样:call({page:1}).map(res=>res.json()).do((res)=>{if(res.meta.hasMore){//doanotherrequestwithpage=2}}.map(...).subscribe(callback)call是一个将使用http

javascript - 我如何预测 Math.random 结果?

如果轮盘游戏网站csgopolygon.com正在调用Math.random和Math.floor,我如何预测它的结果? 最佳答案 您认为在理论上可以预测Math.random结果的直觉是正确的。这就是为什么,如果你想构建一个游戏/赌博应用程序,你应该确保使用cryptographicallysecurepseudo-randomnumbergenerator.如果他们正在使用这样的东西,那就别管它了。但是,如果您是正确的,并且他们使用System.time作为Java附带的标准随机数生成器的种子,那么可能有办法。这将涉及生成数百万

javascript - 在 JavaScript 中计算元素宽度给出了错误的结果

文档中有一个简单的div,带有一些样式。它的width没有在HTML和CSS中设置。我尝试使用不同的方法在JavaScript中计算它的实际宽度:偏移宽度客户端宽度getBoundingClientRect().widthgetComputedStyle(element).getPropertyValue('width')但它们都没有返回可以在Chrome开发者工具中看到的实际宽度。这是演示此问题的代码:varresumeHeader=document.querySelector('#resume-header');varresumeHeaderComputedWidth=getCom

javascript - 缓存 eval() 结果

在Javascript中,是否可以缓存eval的结果??例如,如果我可以的话就太好了:varstr="somecode...";varcode=eval(str);//lateron...code.reExecute(); 最佳答案 您可以使str成为函数的主体并使用NewFunction而不是eval。varfn=newFunction([param1,param2,...],str);并通过调用fn(p1,p2,...)重用它或者使用eval,让str变成类似varfn=eval("(function(a){alert(a);}

javascript - 为什么 toString() 和 this.toString() 在 Chrome 的控制台中产生不同的结果?

现在这根本没有任何实际意义,但我对我偶然发现的这个小怪癖很好奇。基本上,在Chrome的开发者控制台中,这toString()返回[objectObject],而这个this.toString()返回[objectDOMWindow]。据我所知,这只发生在控制台,可以看出onthisjsFiddle.有人在##javascript上找到了thislink解释函数的来源。但是,它没有解释在控制台内部或外部使用时行为中存在的差异。那么为什么toString()和this.toString()在Chrome的控制台中产生不同的结果? 最佳答案

javascript - 实现 JavaScript API 包装器

谁能推荐一种可用于编写JavaScriptAPIwrapper的模式,其中多个实现之间没有共享代码?这个想法是为客户端消费者提供一个单一的包装API,用于在运行时确定的许多可能的API之一。API调用可以是对应用程序环境中已有的对象/库的调用,也可以是Web服务调用。以下伪代码是我考虑过的两种方法:整体解决方案varapiWrapper={init:function(){//*runtime*contextofwhichAPItocallthis.context=App.getContext();},getName:function(){switch(context){casea:re

javascript - 有没有一种巧妙的方法来访问包装函数内的变量?

varx=(function(){varu=1;})();console.log(x.u);//undefined有什么方法可以获取、访问或最终使用console.logu吗?是否有任何我可以放入x中的代码可能会使u易受攻击/可从外部访问?编辑:我的意思是不“直接”返回你。有没有办法不小心暴露你? 最佳答案 简短回答:不。私有(private)就是私有(private)就是私有(private)。稍微长一点的答案:Javascript无法防止构思或执行不当的编码、意外遗漏var或返回或设置对象中的属性访问器(this.u=1;)(或

javascript - 为什么一些非空字符串在 JavaScript 中的计算结果为 "false"?

根据thistableintheECMAScriptstandard,长度为0的字符串值应评估为bool值false。那么,这些语句如何评估为true?"\t"==false""==false"\n"==false""==false所有这些字符串的长度都大于0。例如:虽然我知道"0"的计算结果为false因为它可以被强制转换为数字0,但我无法解释原因这些字符串是错误的。怎么回事?(显然我可以使用===进行严格比较,但在这种情况下,在我的代码中,我需要松散比较,但是我并不期望非空字符串是被认为是错误的。) 最佳答案 您正在使用松散比较

javascript - 使用 typeof vs === 检查未声明的变量会产生不同的结果

如果我有一个未声明的变量并使用typeof,它会告诉我它是undefined。但是,如果我随后使用if(qweasdasd===undefined)检查它,它会抛出异常。我不明白这种行为,因为如果第一次告诉undefined,那么第二次检查应该评估为if(undefined===undefined),为什么它抛出ReferenceError异常? 最佳答案 typeof看起来像一个函数调用,但它不是——它是一个运算符。允许运算符(operator)违反规则。typeof(qweasdasd)不假定qweasdasd存在;它是否存在以