栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js:执行多个异步操作然后执行其他操作的最佳方法?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js:执行多个异步操作然后执行其他操作的最佳方法?

无黑客解决方案

承诺将包含在下一个Javascript版本中

流行的Promise库为您提供了

.all()
一种用于这种确切用例的方法(等待一堆异步调用完成,然后执行其他操作)。这是您的方案的完美匹配

蓝鸟还具有

.map()
,可以接受一组值并将其用于启动Promise链。

这是使用Bluebird的示例

.map()

var Promise = require('bluebird');var request = Promise.promisifyAll(require('request'));function processAllFeeds(feedsToFetch) {        return Promise.map(feedsToFetch, function(feed){         // I renamed your 'feed' fn to 'processFeed'        return processFeed(feed)     })    .then(function(articles){        // 'articles' is now an array w/ results of all 'processFeed' calls        // do something with all the results...    })    .catch(function(e){        // feed server was down, etc    })}function processFeed(feed) {     // use the promisified version of 'get'    return request.getAsync(feed.url)... }

还要注意,您无需在此处使用闭包来累积结果。

在蓝鸟API文档都写得很好过,有很多的例子,所以它可以更容易回升。

一旦我了解了Promise模式,它就会使生活变得更加轻松。我不能推荐它。

另外,这是 一篇很棒的文章, 介绍了使用promise,

async
模块和其他方法处理异步函数的不同方法

希望这可以帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/381292.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号