草庐IT

javascript - 在 Q Promises 中跳过 then 函数的正确方法

在我的代码中,根据特定条件,我想跳到done函数,而不考虑所有then函数。这个问题的原始版本在编辑中。以下是我正在处理的实际问题。很抱歉给您带来不便实际问题:我正在读取一个文件并处理它。如果文件的内容符合某些条件,我必须对文件系统进行一系列操作(比如读写几个文件),然后执行done函数。如果条件不成立,我要跳过这一系列操作,直接执行done函数。我在所有then函数中返回一个对象(比如说result),在下一个then中我更新result并返回它。所以,当所有的then都完成后,done就会有累积的result。最后,done将处理result并打印出来。因此,如果最初不满足条件,d

javascript - 如果我在 Kriskowal 的 q 中多次拒绝/解决会发生什么?

我正在研究promise模式并使用kriskowal的qfornode.js,有这个片段:vardeferred=Q.defer();try{messageData=JSON.parse(message);}catch(e){global.logger.warn('ErrorparsingJSONmessage.');deferred.reject(e);}...if(some_reason)deferred.resolve(something);...returndeferred.promise;如果解析器都失败并且some_reason为真怎么办?是否会从rejected到reso

javascript - 如果我在 Kriskowal 的 q 中多次拒绝/解决会发生什么?

我正在研究promise模式并使用kriskowal的qfornode.js,有这个片段:vardeferred=Q.defer();try{messageData=JSON.parse(message);}catch(e){global.logger.warn('ErrorparsingJSONmessage.');deferred.reject(e);}...if(some_reason)deferred.resolve(something);...returndeferred.promise;如果解析器都失败并且some_reason为真怎么办?是否会从rejected到reso

node.js - 如何在 Q 中按顺序链接可变数量的 Promise?

IhaveseenChaininganarbitrarynumberofpromisesinQ;myquestionisdifferent.如何按顺序进行可变数量的调用,每个调用都异步返回?场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果决定。我想简单地做到这一点。我也看过thisanswer这暗示了这样的事情:varq=require('q'),itemsToProcess=["one","two","three","four","five"];functiongetDeferredResult(prevResult){return(function(someResul

node.js - 如何在 Q 中按顺序链接可变数量的 Promise?

IhaveseenChaininganarbitrarynumberofpromisesinQ;myquestionisdifferent.如何按顺序进行可变数量的调用,每个调用都异步返回?场景是一组HTTP请求,其数量和类型由第一个HTTP请求的结果决定。我想简单地做到这一点。我也看过thisanswer这暗示了这样的事情:varq=require('q'),itemsToProcess=["one","two","three","four","five"];functiongetDeferredResult(prevResult){return(function(someResul

javascript - 如何等待一个 promise 被解决?

我正在处理一个NodeJs框架,它需要某个函数是同步的,但我需要检索一个只能异步访问的值。在一个完美的世界里,我可以返回一个promise,但我不能。作为一个快速而简单的解决方案,我创建了以下方法:exports.synchronizePromise=function(promise){varvalue;promise.then(function(promiseValue){value=promiseValue;});while(!value){}//Waitforpromisetoresolveconsole.log("DONE:"+value);//Neverreachedretu

javascript - 如何等待一个 promise 被解决?

我正在处理一个NodeJs框架,它需要某个函数是同步的,但我需要检索一个只能异步访问的值。在一个完美的世界里,我可以返回一个promise,但我不能。作为一个快速而简单的解决方案,我创建了以下方法:exports.synchronizePromise=function(promise){varvalue;promise.then(function(promiseValue){value=promiseValue;});while(!value){}//Waitforpromisetoresolveconsole.log("DONE:"+value);//Neverreachedretu

javascript - promise 后的返回值

这个问题在这里已经有了答案:settingavariabletogetreturnfromcallbackfunctionusingpromise(2个回答)Howtoreturnvaluefromanasynchronouscallbackfunction?[duplicate](3个回答)关闭8年前。我有一个javascript函数,我想返回在return方法之后得到的值。比解释更容易看到functiongetValue(file){varval;lookupValue(file).then(function(res){val=res.val;}returnval;}用promis

javascript - promise 后的返回值

这个问题在这里已经有了答案:settingavariabletogetreturnfromcallbackfunctionusingpromise(2个回答)Howtoreturnvaluefromanasynchronouscallbackfunction?[duplicate](3个回答)关闭8年前。我有一个javascript函数,我想返回在return方法之后得到的值。比解释更容易看到functiongetValue(file){varval;lookupValue(file).then(function(res){val=res.val;}returnval;}用promis

node.js - 带有 promise 的while循环

用Promise做类似while循环的惯用方式是什么。所以:做某事如果条件仍然存在,请再做一次重复然后做点别的。dosomething.then(possilblydomoresomethings).then(finish)我已经这样做了,我想知道是否有更好/更惯用的方法?varq=require('q');varindex=1;varuseless=function(){varcurrentIndex=index;console.log(currentIndex)vardeferred=q.defer();setTimeout(function(){if(currentIndex>1