草庐IT

Promises

全部标签

node.js - (mongoose/promises) 你如何检查文档是否是使用 findOneAndUpdate 和 upsert 创建的

考虑这段代码,我需要在其中创建或更新特定文档。Inbox.model.findOneAndUpdate({number:req.phone.number},{number:req.phone.number,country:req.phone.country,token:hat(),appInstalled:true},{new:true,upsert:true}).then(function(inbox){/*dosomethingherewithinbox,butonlyiftheinboxwascreated(notupdated)*/});Mongoose是否有能力区分文档是创建

node.js - (mongoose/promises) 你如何检查文档是否是使用 findOneAndUpdate 和 upsert 创建的

考虑这段代码,我需要在其中创建或更新特定文档。Inbox.model.findOneAndUpdate({number:req.phone.number},{number:req.phone.number,country:req.phone.country,token:hat(),appInstalled:true},{new:true,upsert:true}).then(function(inbox){/*dosomethingherewithinbox,butonlyiftheinboxwascreated(notupdated)*/});Mongoose是否有能力区分文档是创建

javascript - 使用 Promises 时,每个 then() 都应该返回一个值或抛出

我有一些异步方法需要等待完成,然后才能从请求返回。我正在使用Promises,但我不断收到错误消息:Eachthen()shouldreturnavalueorthrow//promise/always-return为什么会这样?这是我的代码:router.get('/account',function(req,res){varid=req.user.uidvarmyProfile={}varprofilePromise=newPromise(function(resolve,reject){varuserRef=firebase.db.collection('users').doc(

node.js - ES6 Promises - 在 Promise 链中调用同步函数

我目前正在试验Promise并且有一个非常基本的问题!在Promise链中,调用同步函数会是不好的做法吗?例如:.then(function(results){if(checkIfResultInMemory(results)===true){returngetTotalFromMemory()}returnresults;})或者我的同步函数也应该被重构以返回promise? 最佳答案 Withinapromisechain,woulditbebadpracticetocallasynchronousfunction?不,这根本不

javascript - Node.js:何时使用 Promises 与 Callbacks

我正在更新一些较旧的Node.js代码。在此过程中,我正在设计新模块以使用旧代码。我现在发现,与我第一次写这篇文章时相比,我更多地依赖于使用ES6promise而不是回调。所以现在我混合了一些返回promise的函数和一些接受回调的函数——这很乏味。我认为最终应该重构它以使用promise。但在那之前……在哪些情况下首选Promise,哪些情况下首选回调?是否有任何类型的情况,回调可以比Promise更好地处理,反之亦然?根据我目前所见,我真的看不出有任何理由使用回调而不是promise。这是真的吗? 最佳答案 首先,您几乎不想编写

Node.js 控制流 : callbacks or promises?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion我知道有很多controlflowlibraries对于node.js。其中一些让一个链异步函数与回调(如async、asyncblock等),其他使用promiseconcept(Q、延期、future等)。给定一个长时间运行的脚本,一个接一个地执行一系列可能随时失败的操作,您更喜欢哪个控制流,为什么?有什么好处和坏处? 最佳答案 回

node.js - 在循环中使用带有 fs.readFile 的 Promises

我试图了解为什么以下promise设置不起作用。(注意:我已经用async.map解决了这个问题。但我想了解为什么我在下面的尝试没有奏效。)正确的行为应该是:bFunc应该运行尽可能多的时间以fs读取所有图像文件(下面的bFunc运行两次),然后cFunc控制台打印“End”。谢谢!尝试1:它在cFunc()处运行并停止。varfs=require('fs');bFunc(0).then(function(){cFunc()})//cFunc()doesn'trunfunctionbFunc(i){returnnewPromise(function(resolve,reject){va

JavaScript Promises - 拒绝与抛出

我已经阅读了几篇关于这个主题的文章,但我仍然不清楚Promise.reject与抛出错误之间是否存在差异。例如,使用Promise.rejectreturnasyncIsPermitted().then(function(result){if(result===true){returntrue;}else{returnPromise.reject(newPermissionDenied());}});使用throwreturnasyncIsPermitted().then(function(result){if(result===true){returntrue;}else{throw

CF1149E Election Promises

CF1149EElectionPromises这个题目最难下手的地方在于:可以对相邻的城市进行任意修改,这导致难以确定后继状态。但是还是可以使用\(\operatorname{SG}\)函数!下面设\(f_u=\operatorname{mex}\{f_v\}\),这个可以直接拓扑排序求。考虑这样一个状态:除点\(u\)外所有点的当前\(h\)均为\(0\),此时\(\operatorname{SG}(x)=\omega_{f_u}\cdoth_u\),其中\(\omega_k\)表示\(k\)阶无穷大。先手必败当且仅当\[S_k(x)=\bigoplus_{f_u=k}{h_u}=0,\fo

CF1149E Election Promises

CF1149EElectionPromises这个题目最难下手的地方在于:可以对相邻的城市进行任意修改,这导致难以确定后继状态。但是还是可以使用\(\operatorname{SG}\)函数!下面设\(f_u=\operatorname{mex}\{f_v\}\),这个可以直接拓扑排序求。考虑这样一个状态:除点\(u\)外所有点的当前\(h\)均为\(0\),此时\(\operatorname{SG}(x)=\omega_{f_u}\cdoth_u\),其中\(\omega_k\)表示\(k\)阶无穷大。先手必败当且仅当\[S_k(x)=\bigoplus_{f_u=k}{h_u}=0,\fo