草庐IT

Bluebird

全部标签

javascript - 与 fs 和 bluebird 的 promise

我目前正在学习如何在nodejs中使用Promise所以我的第一个挑战是列出目录中的文件,然后使用异步函数通过两个步骤获取每个文件的内容。我提出了以下解决方案,但有一种强烈的感觉,这不是最优雅的方法,尤其是第一部分,我将异步方法“转换”为Promise//purposeistogetthecontentsofallfilesinadirectory//usingtheasynchronousmethodsfs.readdir()andfs.readFile()//andchainingthemviaPromisesusingthebluebirdpromiselibrary[1]//[

javascript - 在 Promise 被拒绝后停止运行进程

我正在使用以下代码,它工作正常,但问题是当我收到错误时,我希望它停止所有其他promise。例如,如果chi.getCommand(val1,val2),将发送一个拒绝并且我得到了异常捕获,我想取消chss.exe和app.getStatus(12);我怎样才能做到这一点?varstart=Promise.all([chi.getCommand(val1,val2),chi.findAndUpdateCustomer()]).spread(function(command,customer){returnchss.exe(runnableDoc,command,customer).de

javascript - 在 Promise 被拒绝后停止运行进程

我正在使用以下代码,它工作正常,但问题是当我收到错误时,我希望它停止所有其他promise。例如,如果chi.getCommand(val1,val2),将发送一个拒绝并且我得到了异常捕获,我想取消chss.exe和app.getStatus(12);我怎样才能做到这一点?varstart=Promise.all([chi.getCommand(val1,val2),chi.findAndUpdateCustomer()]).spread(function(command,customer){returnchss.exe(runnableDoc,command,customer).de

javascript - 我可以在 Node 的全局范围内覆盖 ES 6's Promise by bluebird' 的实现吗?

我想使用bluebird的Promise/A+的实现开放标准并覆盖nativeES6Promises.我还希望bluebird实现在我随后导入的模块中随处可用,而不必在每个模块中都需要它。Bluebird的Gettingstarted页面告诉我:varPromise=require("bluebird");,这会导致覆盖原生Promise元素。因为bluebird是规范的超集,所以它不会破坏现有代码,因此应该可以安全使用。但是,因为我知道这样做被认为是不好的做法:扩展或替换母语,并且定义全局变量以在依赖它的需求链中使用,当我想将它包含在Node应用程序的基本脚本中时,我很谨慎:impo

javascript - 我可以在 Node 的全局范围内覆盖 ES 6's Promise by bluebird' 的实现吗?

我想使用bluebird的Promise/A+的实现开放标准并覆盖nativeES6Promises.我还希望bluebird实现在我随后导入的模块中随处可用,而不必在每个模块中都需要它。Bluebird的Gettingstarted页面告诉我:varPromise=require("bluebird");,这会导致覆盖原生Promise元素。因为bluebird是规范的超集,所以它不会破坏现有代码,因此应该可以安全使用。但是,因为我知道这样做被认为是不好的做法:扩展或替换母语,并且定义全局变量以在依赖它的需求链中使用,当我想将它包含在Node应用程序的基本脚本中时,我很谨慎:impo

javascript - 如何处理 promise 的错误?

作为Node程序员。我习惯于使用“nodebacks”来处理我的代码中的错误:myFn(param,function(err,data){if(err){//errorhandlinglogic}else{//businesslogic}});在编写该函数时,我可以执行以下操作:varmyFn=function(param,callback){varcalc=doSomeCalculation(param);if(calc===null){//orsomeotherwaytodetecterrorcallback(newError("errorwithcalculation"),nul

javascript - 如何处理 promise 的错误?

作为Node程序员。我习惯于使用“nodebacks”来处理我的代码中的错误:myFn(param,function(err,data){if(err){//errorhandlinglogic}else{//businesslogic}});在编写该函数时,我可以执行以下操作:varmyFn=function(param,callback){varcalc=doSomeCalculation(param);if(calc===null){//orsomeotherwaytodetecterrorcallback(newError("errorwithcalculation"),nul

javascript - Bluebird Promise.all - 多个 Promise 完成聚合成功和拒绝

今天有人用bluebird提出了一个有趣的案例,在我们不想停止给定的履行或拒绝,而是有兴趣检查最终结果的情况下,处理多个promise的最佳方式是什么。一个例子:varp1=newPromise(function(f,r){setTimeout(function(){console.log("p1");f("yay");},100);});varp2=newPromise(function(f,r){setTimeout(function(){console.log("p2");r(newError("boo"));},200);})varp3=newPromise(function(

javascript - Bluebird Promise.all - 多个 Promise 完成聚合成功和拒绝

今天有人用bluebird提出了一个有趣的案例,在我们不想停止给定的履行或拒绝,而是有兴趣检查最终结果的情况下,处理多个promise的最佳方式是什么。一个例子:varp1=newPromise(function(f,r){setTimeout(function(){console.log("p1");f("yay");},100);});varp2=newPromise(function(f,r){setTimeout(function(){console.log("p2");r(newError("boo"));},200);})varp3=newPromise(function(

javascript - 如何使用 Promises 链接和共享先前的结果

这个问题在这里已经有了答案:HowdoIaccesspreviouspromiseresultsina.then()chain?(17个回答)关闭6年前。我正在使用bluebird库,需要发出一系列HTTP请求,并且需要一些响应数据到下一个HTTP请求。我已经构建了一个函数来处理我的请求,称为callhttp()。这需要一个url和一个POST的正文。我这样调用它:varpayload='{"Username":"joe","Password":"password"}';varjoin=Promise.join;join(callhttp("172.16.28.200",payload