草庐IT

Async-await

全部标签

node.js - async.map 不会在 nodejs 中调用回调

我正在尝试使用async.map但由于某些未知原因无法让它调用回调在下面的示例中,函数d应该显示数组r但它没有。实际上,就好像d从未被调用过一样。我一定做错了什么,但不知道是什么async=require('async');a=[1,2,3,4,5];r=newArray();functionf(callback){returnfunction(e){e++;callback(e);}}functionc(data){r.push(data);}functiond(r){console.log(r);}async.map(a,f(c),d);提前感谢您的帮助

ES6+--》熟知JS中的async函数

目录async函数await表达式async使用形式async读取文件async发送AJAX请求与生成器(Generator)相比async函数async函数的返回值为promise对象,promise对象的结果由async函数执行的返回值决定。async函数能使得异步操作变得更加方便,简而言之就是Generator的语法糖。定义async函数,特点是即便函数内部返回结果不是promise对象,调用函数其最后的返回结果依然是promise对象,代码如下:如果返回的结果不是Promise对象的情况下:asyncfunctionfn(){//返回的结果是字符串//return'123'////返回

node.js - MongoError : server instance pool was destroyed

我在thisquestion的帮助下构建了这个应用程序我以前做过。app.js:varmongolib=require('./middlewares/db.js');vardownloaderCoverageWho=require('./routers/downloaderCoverageWho.js');vardownloaderCoverageIta=require('./routers/downloaderCoverageIta.js');conststart=asyncfunction(){constconn=awaitmongolib.connectToMongoDb();c

node.js - MongoError : server instance pool was destroyed

我在thisquestion的帮助下构建了这个应用程序我以前做过。app.js:varmongolib=require('./middlewares/db.js');vardownloaderCoverageWho=require('./routers/downloaderCoverageWho.js');vardownloaderCoverageIta=require('./routers/downloaderCoverageIta.js');conststart=asyncfunction(){constconn=awaitmongolib.connectToMongoDb();c

node.js - Node 在异步函数完成之前退出

我有一个返回promise的函数,我试图在异步函数中等待它。问题是程序立即完成,而不是等待promise。异步测试.js:functiondoItSlow(){constdeferred=newPromise();setTimeout(()=>{console.log("resolving");deferred.resolve();},1000);returndeferred;}asyncfunctionwaitForIt(done){console.log("awaiting");awaitdoItSlow();console.log("awaited");done();}waitF

node.js - Node 在异步函数完成之前退出

我有一个返回promise的函数,我试图在异步函数中等待它。问题是程序立即完成,而不是等待promise。异步测试.js:functiondoItSlow(){constdeferred=newPromise();setTimeout(()=>{console.log("resolving");deferred.resolve();},1000);returndeferred;}asyncfunctionwaitForIt(done){console.log("awaiting");awaitdoItSlow();console.log("awaited");done();}waitF

node.js - 如果其中任何一个任务出错,async.parallel 是否仍会在所有任务完成后调用最终回调?

varasync=require('async');async.parallel([function(cb){cb(true);},function(cb){cb(null,true);}],function(error,results){});在代码中,如果第一个任务在第二个任务之前运行cb(true),那么第二个任务还会运行吗?如果是这样,完成后,还会调用主回调吗? 最佳答案 async.parallel并行执行所有函数。如果任何函数将错误传递给其回调(回调第一个参数不为空),主回调将立即调用错误值。但所有函数都会被执行。使用以

node.js - 如果其中任何一个任务出错,async.parallel 是否仍会在所有任务完成后调用最终回调?

varasync=require('async');async.parallel([function(cb){cb(true);},function(cb){cb(null,true);}],function(error,results){});在代码中,如果第一个任务在第二个任务之前运行cb(true),那么第二个任务还会运行吗?如果是这样,完成后,还会调用主回调吗? 最佳答案 async.parallel并行执行所有函数。如果任何函数将错误传递给其回调(回调第一个参数不为空),主回调将立即调用错误值。但所有函数都会被执行。使用以

node.js - 如何等待并返回 http.request() 的结果,以便多个请求串行运行?

假设有一个函数doRequest(options),它应该执行一个HTTP请求并为此使用http.request()。如果doRequest()在循环中被调用,我希望下一个请求在前一个完成之后发出(串行执行,一个接一个)。为了不弄乱回调和Promises,我想使用async/await模式(使用Babel.js编译以在Node6+上运行)。但是,我不清楚如何等待响应对象进行进一步处理以及如何将其作为doRequest()的结果返回:vardoRequest=asyncfunction(options){varreq=awaithttp.request(options);//dowene

node.js - 如何等待并返回 http.request() 的结果,以便多个请求串行运行?

假设有一个函数doRequest(options),它应该执行一个HTTP请求并为此使用http.request()。如果doRequest()在循环中被调用,我希望下一个请求在前一个完成之后发出(串行执行,一个接一个)。为了不弄乱回调和Promises,我想使用async/await模式(使用Babel.js编译以在Node6+上运行)。但是,我不清楚如何等待响应对象进行进一步处理以及如何将其作为doRequest()的结果返回:vardoRequest=asyncfunction(options){varreq=awaithttp.request(options);//dowene