草庐IT

Promise方法

全部标签

javascript - 总是返回一个 promise 有用吗

我正在使用bluebird围绕http服务设计一些nodejsapi包装器。这个包装器中的许多函数都是异步的,因此从这些实现中返回promise很有意义。我的同事已经在这个项目上工作了几天,有趣的模式正在出现,他还从同步实现的功能中返回promise。例子:functionparseArray(someArray){varresult;//synchronousimplementationreturnPromise.resolve(result);}如果稍后需要将实现设为异步,我可以看出这会有多大用处,因为您不必重构调用站点。我想所有方法始终“异步”也很好,但我不确定这到底有多棒。这是

javascript - express - 路线分离方法

我正在尝试找到在Express中分隔路由的最佳方法。我知道有两种方法,我想知道它们之间有什么区别,哪一种被认为是“最佳实践”(以及为什么)。方法一-导出很多例子好像都是用这个方法应用程序.jsvaruser=require('./routes/users');app.get('/users',user.list);routes/users.jsexports.list=function(req,res){res.render('users',{title:'Users',users:users});};方法二-express指南中使用了此方法应用程序.jsvarusers=requir

javascript - axios IE promise 不起作用

我正在使用axios进行ajax通信。我有问题的IE浏览器。IE返回有关Promise的错误。IE对Promise一无所知。我正在写react/redux,但我在纯JS中尝试了axios,结果相同有人可以帮我吗?我很困惑,因为axios应该在IE8+上工作我试过IE11(windows1064位)我的trial是按照axios首页的example写的谢谢 最佳答案 如果浏览器没有promise实现,你必须包含一个promisepolyfill。这听起来很复杂,但确实有很好的库。axios文档提到它:axios依赖于要支持的原生ES6

javascript - 从 typescript 中的静态方法中检索类名

我正在尝试从静态方法中检索类名。它适用于普通方法,但不适用于静态方法classMyNode{constructor(){varclassname=this.constructor.toString().split('('||/s+/)[0].split(''||/s+/)[1];console.log(classname);}statica_static_method(){varclassname=this.constructor.toString().split('('||/s+/)[0].split(''||/s+/)[1];console.log(classname);}}var

javascript - 循环遍历 JavaScript 对象的其他方法?

下面的代码运行良好,但ESLint插件显示警告:“不允许使用‘ForinStatement’”,所以我想将其更改为其他方式以防止出现警告消息:letcount=0;for(constkeyingroups){if(Object.prototype.toString.call(groups[key])==='[objectObject]'){if({}.hasOwnProperty.call(groups[key],'users')){count+=groups[key].users.length;}}} 最佳答案 如果您的目标只是避

javascript - HTML5 video.play 返回未决 promise

我正在尝试确定浏览器是否支持加载时自动播放。我正在使用以下代码,它在Androidchrome上运行良好,但对于桌面版Chrome,.catch或.then中的任何行都不会执行。promise似乎只是无限地返回Pendingpromises。这是一个真正的Chrome错误还是我不理解Promises在这里是如何工作的?constpromise=document.createElement('video').play();if(promiseinstanceofPromise){ promise.catch((error)=>{ //Checkifitistherighterror

javascript - React - 从属于同一个 render() 的另一个组件触发组件方法

我有一个自定义组件Foo,其'bar'我想从外部触发的功能:classFooextendsReact.Component{bar(){...}}我正在渲染Foo连同button其目的是触发Foo.bar():render(){return();}我尝试过的事情:移动里面Foo,然后添加onClick的在Foo's构造函数——onClick的绑定(bind)不起作用——我看到它已附加,但是仍然没有触发onClick.(或者,如果可行,如何正确执行)?不符合我要求的解决方案:我看到一个potentialsolution建议在整个MyComponent中听一次点击,然后执行一些DOM查询以查

javascript - 当 promise 被多次解决时会发生什么

如果多次拒绝/解决ES6promise,标准行为是什么?以下代码仅在GoogleChrome中被解析一次,这是所有浏览器的标准行为吗?newPromise(function(e){$('#button').click(function(){resolve();});});我看到一个promisepolyfill在尝试解决已经解决的promise时抛出异常。es6-promise的规范是否指定了这一点,或者不符合polyfill标准?更新抱歉,我刚刚意识到它不是polyfill,而只是Promise(非标准)的最小实现。 最佳答案 一

javascript - Angular 4 - "wait for operation"的正确方法是什么?

我遇到了一个简单的问题,它有一个hacky解决方案setTimeout(...,0)。看看这个简单的代码:@Component({selector:'my-app',template:`SpanToDetect`,})exportclassApp{Items:Array=newArray();fill(){this.Items=[1,2,3,4,5,6,7,8,9,10]this.analyzeDom();//thishastorunhere}analyzeDom(){alert($("div.mySpan").length)//"0"//BUTifIsetthishackytrick

javascript - 强制javascript始终返回数组的简单方法

我偶然发现了YQLAPI查询用于Twitter的WOEID,但我可以看到输出并不总是在数组中。API返回一个对象,我对返回以下内容的response.query.results的值感兴趣:如果没有结果,则返回null如果只有一个结果,则返回一个对象如果有多个结果,则返回一个数组我希望结果始终是一个数组。我可以通过使用以下代码检查结果来解决此问题:varcount=response.query.count;if(count===0){return[];}elseif(count===1){vararr=[];arr.push(response.query.results);returna