草庐IT

promises

全部标签

javascript - 获取在 Promise.race 中完成了哪个 promise

上下文:我需要进行大量可并行的异步调用(大约300到3000次ajax调用)。但是,我不想通过一次调用它们来增加浏览器或服务器的压力。我也不想按顺序运行它们,因为需要很长时间才能完成。我决定一次运行五个左右,并为此派生了这个函数:asyncfunctionasyncLoop(asyncFns,concurrent=5){//queueupsimultaneouscallsletqueue=[];for(letfnofasyncFns){//firetheasyncfunctionandadditspromisetothequeuequeue.push(fn());//ifmaxconc

javascript - 如何使用 Mocha 测试 promise

我正在使用Mocha测试返回promise的异步函数。测试promise是否解析为正确值的最佳方法是什么? 最佳答案 自版本1.18.0(2014年3月)起,Mocha已内置Promise支持。您可以从测试用例中返回一个promise,Mocha将等待它:it('doessomethingasynchronous',function(){//note:no`done`argumentreturngetSomePromise().then(function(value){expect(value).to.equal('foo');})

javascript - 带有 promise 表达式的angularjs ng-show

我将ng-show与解析为promise的表达式一起使用,该表达式解析为bool值。当我这样做时,我得到10次摘要迭代溢出。参见http://plnkr.co/edit/XibYM0kCnXhKjNUeTsp3?p=previewnonpromisepromise控制键:$scope.returnsABoolean=()->true$scope.returnsAPromiseThatResolvesToABoolean=()->$q.when(false)我知道{{somePromise}}会解决,但是{{returnsAPromiseThatResolvesToABoolean()}

javascript - JavaScript 中的延迟/ promise 概念是一个新概念还是函数式编程的传统部分?

我真的很喜欢jQuery的延迟/promise模式或范例的想法,但有时我无法将我老化的大脑围绕更细微的点或特定的实现细节。事实上,最近我发现deferred/promise模式/范式似乎早于jQuery,并且至少在这些其他JavaScript库/框架中也是如此:延期githubQhomepagetask.jshomepagewhen.jsgithubwire.jsgithub,presentationYUIgallery-deferredmodule我可能遗漏了一些,包含了真正属于其中一个的东西,并在该列表中犯了其他错误......请编辑它以更正它或发表评论。延迟/promise概念是

javascript - RxJs 从结果 Promise 创建 Observable

我是RxJs的新手,我想了解将Rx与Promises结合使用的最佳方式是什么。我想要创建的是Angular中的一个服务,它充当事件调度程序模式,并在promise完成后发出一个事件。我还需要的是,如果没有(事件)订阅者,则永远不会调用可观察对象。我最不想发生的事情是,可观察对象的任何后续订阅者都会获得相同的结果,而不会触发对服务器的另一个请求。我在这里设法实现了自己的解决方案://...CountryServicecodevarCOUNTRIES_LOADED=Rx.Observable.create(function(observer){$http.get('/countries')

javascript - 使用 Mocha 和 Chai-as-Promised 测试被拒绝 promise 的特定属性

我正在尝试使用Chai-as-Promised测试被拒绝的Promise的细节,Mocha,和“应该”方言。promise由bluebird实现.这很好用:it('itshouldberejectedwhengivenbadcredentials',function(){varpromiseOfUsers=db.auth("bad","credentials").getUsers();returnpromiseOfUsers.should.eventually.be.rejectedWith(Error)});该错误有一个“状态”属性。我想断言状态是401这不起作用:it('itsho

javascript - 等待相当于 'Promise.resolve().then()' ?

我熟悉Promises,但继承了一些相当不寻常的代码,而不是制作newPromise(),而是使用以下代码:Promise.resolve().then(function(){//Dousefulthings})根据我的研究,这是一个weirdversionofsetImmediate-即,在下一次滴答时运行以下函数。await版本是什么? 最佳答案 Promise.resolve()可能有两个不同的原因。你触及了其中之一:延迟到JS事件循环的当前运行结束这里显而易见的答案是awaitPromise.resolve();。await

javascript - 事件循环和Promise有什么关系

这个问题在这里已经有了答案:PromisevssetTimeout(6个答案)关闭5年前。很好奇EventLoop和Promise的关系该演示暴露了这个问题。我希望p1fulfilled出现在中间,因为它们将任务排队到同一个任务队列并一个接一个地执行。varp1=newPromise(function(resolve,reject){resolve(1)})setTimeout(function(){console.log("willbeexecutedatthetopofthenextEventLoop")},0)p1.then(function(value){console.log

javascript - 在渲染之前等待 react-promise 解决

因此,我有大量数据是从API中检索的。我认为问题在于我的组件在从promise接收数据之前调用了renderMarkers函数。所以我想知道如何在调用我的renderMarkers函数之前等待完全解析数据的promise?classMapextendsComponent{componentDidMount(){console.log(this.props)newgoogle.maps.Map(this.refs.map,{zoom:12,center:{lat:this.props.route.lat,lng:this.props.route.lng}})}componentWillM

javascript - 如何打破 promise 链

我以这样的方式promise,functiongetMode(){vardeferred=Promise.defer();checkIf('A').then(function(bool){if(bool){deferred.resolve('A');}else{returncheckIf('B');}}).then(function(bool){if(bool){deferred.resolve('B');}else{returncheckIf('C');}}).then(function(bool){if(bool){deferred.resolve('C');}else{defer