草庐IT

async_wait

全部标签

javascript - 从嵌套的 async/await 函数中捕获错误

我在node4.3脚本中有一个函数链,类似于回调->promise->async/await->async/await->async/await像这样:consttopLevel=(resolve,reject)=>{constfoo=doThing(data).then(results=>{resolve(results)}).catch(err=>{reject(err)})}asyncfunctiondoThing(data){constthing=awaitdoAnotherThing(data)returnthing}asyncfunctiondoAnotherThing(d

node.js - 使用 async/await 在 AWS lambda 上未处理的 promise 拒绝

最近,AWS宣布为其lambda函数(Node.js8.10runtimeavailable)提供nodejs8.10运行时。虽然这对于快乐的流程来说似乎很棒,但我在不快乐的流程中遇到了一些问题,即我收到了“UnhandledPromiseRejectionWarnings”。我正在使用以下代码。这个想法是我提供了一个不存在的对象的key来测试该场景的不愉快流程。我的目标是让错误被记录并从lambda中传播出去,因为我在这里没有理智的方法来处理它(我无法在这个lambda函数中检索新键)。我还希望能够在调用者中使用错误(例如,另一个lambda函数或步进函数)。'usestrict';

javascript - promise Js : Wait till promise fulfilled

这个问题在这里已经有了答案:HowdoIreturntheresponsefromanasynchronouscall?(44个答案)关闭6年前。我正在使用Bluebird对于Node.Js中的promise,并且想知道如何在promise履行(完成)时让函数返回。我想要的行为是:functiongetItem(){functionReturningPromise.then(function(result){//dosomeoperationonresultreturnresult;});}但是,上述实现不会返回任何内容,因为在执行时未完成promise。解决此问题的最佳解决方法是什么

javascript - 如何打破 async.js 每个循环?

您好,我正在使用async用于异步实现for循环的node.js模块。我的问题是:如何中断循环执行并跳出循环?我尝试给return,returnfalse但没有运气。这里是示例代码:async.until(function(){returngoal;},function(callback){async.each(_rules,function(rule,callback){varoutcome=true;....somecode....if(changes){console.log("hi");returnfalse;//HEREINEEDTOBREAK}elsecallback();

javascript - 我们应该在 JavaScript 中选择 async await 而不是 Promise

我知道asyncawait是镇上新的Promise并且是编写异步代码的新方法,我也知道我们不必编写.then,创建一个匿名函数来处理响应Async/await最终可以使用相同的构造处理同步和异步错误,好旧的try/catchpromise链返回的错误堆栈不提供错误发生位置的任何线索。但是,来自async/await的错误堆栈指向包含错误的函数等等……但是这里我做了一个简单的基准测试https://repl.it/repls/FormalAbandonedChimpanzee在基准测试中,我已经运行了2个循环100万次。在第一个循环中,我正在调用一个返回1的函数在另一个函数中,我正在调用

javascript - 使用 node.js 函数 async.retry 确定成功/失败

我正在研究node.js模块async,但是我对函数async.retry有一些问题。根据其githubdocs,该函数将继续尝试该任务,直到它成功或机会用完。但是我的任务如何判断成功或失败呢?我尝试了下面的代码:varasync=require('async');varopts={count:-3};async.retry(5,function(cb,results){++this.count;console.log(this.count,results);if(this.count>0)cb(null,this.count);elsecb();}.bind(opts),functi

javascript - async.map 或 async.each 与 async.parallel 有什么区别?

我最近开始做一个Node项目,并且一直在使用async库。我有点困惑哪个选项会更快。在某些数据上使用async.map并获取其结果,或使用async.each迭代一组用户并将他们的相应操作放入一个函数调用数组中,我使用async.parallel执行。 最佳答案 类似于JavaScript的forEach,async.each接受三个参数,第一个是要迭代的数组,第二个是应用于数组每个元素的函数(即第一个参数)。第二个参数的形式是iterator(item,callback),其中iterator是函数名,callback也是一个函数

javascript - Node 版本 8 中 Async/Await 的性能指南

async/await在node版本8中可用。代码在nodejs中首次在native中是线性的。那很好。之前的许多文章声称,在v8javascript引擎中,带有try/catchblock的函数没有被优化。现在,async/await需要try/catchblock来处理错误。那么,作为开发人员需要做些什么来保持相同的性能? 最佳答案 try/catch在提交9aac80f中收到TurboFan优化适用于V85.3(Nodev7.x及更高版本)。这意味着try/catch性能不佳的历史说法不再成立。来自V8blogpost:Int

javascript - 编写 ASYNC CPP nodejs (0.5.3+) 模块

我正在寻找一种方法来为当前版本(0.5.9)的NodeJs构建c++模块。通过使用以下教程并从Nodenode_file.cc中抽象出来,我能够自己为Node0.5.3构建一个模块。https://github.com/jedp/node-rot13/blob/master/src/rot13.cpp但是在Node0.5.4中,一些API肯定发生了变化,因为我不再能够使用eio_*扭曲函数了。查看node_file.cc我发现eio_*包装已被新的ReqWrap类替换。例如在这个宏中:https://gist.github.com/1303926不,我想知道编写异步扩展的最佳方式是什么

javascript - 使用 Node.js、Async 和 Formidable 处理错误

在下面的代码片段中,我想验证第一个异步方法中的字段。如果它们无效,我想立即向用户返回一个错误。我该怎么做?varform=newformidable.IncomingForm();async1.series([function(callback){form.parse(req);form.on('field',function(name,val){//Getthefields});form.on('fileBegin',function(name,file){if(file.name!==""){file.path=__dirname+'/upload/'+file.name;}});