草庐IT

promised-mongo

全部标签

javascript - 使用 Jest CLI 时如何让 Promises 工作?

我正在尝试使用JestCLI测试一个promise,这段代码在浏览器中运行时会正常执行。但是我想开始为它编写测试。classListCollection{constructor(){this.items=newArray();}addItem(string){constaddItemPromise=newPromise(function(resolve,reject){//setupasyncgettinglikeaXMLHttpRequestsetTimeout(()=>{this.items.push(string);resolve(string);}.bind(this),200

javascript - 包装在 promise JavaScript 泛型函数中

这个问题在这里已经有了答案:HowdoIconvertanexistingcallbackAPItopromises?(24个答案)关闭7年前。我如何用promise包装一个可以在内部具有同步/非同步功能的函数?我已经调用了下面的函数action[fn](req,res);在函数fn(在下面的例子中)运行可以有内部(我对每个函数使用动态调用)同步或像下面的例子那样异步,Howitsrecommendedtowrapitinpromise.Howtohandleerrorsifany...我使用nodeJS应用程序run:function(req,res,filePath){varwri

javascript - Promise join 向链中添加新的函数调用

我正在尝试加载和解析文件,但在调用两个函数并返回promise的结果时遇到了一些问题。我正在使用Bluebirdpromise。以下代码按预期工作:run=function(filePath){returnPromise.join(fs.readFileAsync(filePath,'utf8').then(parseFile.parse.bind(null,'userKey')),users.getUsersAsync(usersObj).then(users.modifyRec.bind(null,process.env.users))).then(function(args){r

javascript - 访问 promise 回调中对象的 'this'(然后)

我想用Javascript创建一个对象。其中一个方法应该执行一个promise链。链中的每个方法都必须访问作为对象成员的配置变量。问题是,this运算符在PromiseMethod2中被更改,我无法访问配置变量(它在PromiseMethod1中正常工作)。这是我的代码:varSomeObject(config){varthat=this;that.config=config;}SomeObject.prototype.SomeMethod=function(){varthat=this;that.PromiseMethod1().then(that.PromiseMethod2).c

javascript - 如何通过嵌套正确链接 Promises

我的Node项目目前包含一个嵌套回调的横向圣诞树,以便获取数据并以正确的顺序处理它们。现在我正在尝试使用Promises重构它,但我不确定如何正确地进行重构。假设我正在获取一个办公室列表,然后是每个办公室的所有员工,然后是每个员工的薪水。最后,所有实体(办公室、员工和薪水)都应该链接在一起并存储在数据库中。一些伪代码说明了我当前的代码(省略了错误处理):fetch(officesEndpoint,function(data,response){parse(data,function(err,offices){offices.forEach(function(office){save(o

javascript - 为 promise 速率限制功能创建有效测试用例的问题

我正在尝试为下面的promiseRateLimit函数创建一个有效的测试用例。promiseRateLimit函数的工作方式是它使用queue来存储传入的promise,并在它们之间放置一个delay。importPromisefrom'bluebird'exportdefaultfunctionpromiseRateLimit(fn,delay,count){letworking=0letqueue=[]functionwork(){if((queue.length===0)||(working===count))returnworking++Promise.delay(delay)

javascript - 等效于 ES6 Promises 的 BlueBird Promise.props?

我想等待Promise的单词映射完成。BlueBird有Promise.props可以实现这一点,但是有没有一种干净的方法可以在常规javascript中做到这一点?我想我可以创建一个包含单词和Promise的新对象,获取这些对象的Promise数组,然后调用Promise.all并将它们放入map中,但这似乎有点矫枉过正。 最佳答案 适用于普通对象的Bluebird.props实现:/***Thisfunctionmaps`{a:somePromise}`toapromisethat*resolveswith`{a:resolve

javascript - 一系列 promise 如何与 reduce 一起工作?

我正在阅读这篇文章HERE,它讲述了如何使用reducewithpromises,最后显示了以下代码片段:consttasks=getTaskArray();returntasks.reduce((promiseChain,currentTask)=>{returnpromiseChain.then(chainResults=>currentTask.then(currentResult=>[...chainResults,currentResult]));},Promise.resolve([])).then(arrayOfResults=>{//Dosomethingwithall

javascript - 等待一个已经完成的 Promise 的性能开销是多少?

在做代码审查时,我最近遇到了这样的代码块:constpromises=[];constdata=[];for(letpieceofpieces){for(letchunkofpiece){promises.push(execute(chunk));//executereturnsapromisewhichisnotyetfulfilled}data=awaitPromise.all(promises);}这里的pieces是一个数组的数组。请注意,由于某些限制,我们无法立即等待所有Promise,因此需要进行这种分块。在我的反馈中,我写道这似乎是一种反模式,因为我们也在等待Promis

javascript - 检测 Angular JavaScript promise 链中是否存在下一个处理程序

给定以下两个$resource示例:varexampleOne=$resource('/path').save(objectOne);exampleOne.$promise.then(function(success){},function(error){});varexampleTwo=$resource('/path').save(objectTwo);exampleTwo.$promise.then(function(success){});[注意:示例二不包含错误处理程序]还有一个位于所有$http请求之下的拦截器:varinterceptor=['$location','$q