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

如何使用Bluebird来实现Node的child_process.exec和child_process.execFile函数的功能?

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

如何使用Bluebird来实现Node的child_process.exec和child_process.execFile函数的功能?

听起来您想从通话中返回两件事:

  • 子进程
  • 当ChildProcess完成时解决的承诺

那么,“推荐这种功能的推荐方法”呢? 不要

您不符合常规。承诺返回函数将返回承诺,仅此而已。您可以返回一个具有两个成员的对象(ChildProcess和Promise),但这只会使人们感到困惑。

我建议调用unpromisified函数,并基于返回的childProcess创建一个promise。(也许将其包装到一个辅助函数中)

这样,对于下一个阅读该代码的人来说是非常明确的。

就像是:

var Promise = require('bluebird');var exec = require('child_process').execFile;function promiseFromChildProcess(child) {    return new Promise(function (resolve, reject) {        child.addListener("error", reject);        child.addListener("exit", resolve);    });}var child = exec('ls');promiseFromChildProcess(child).then(function (result) {    console.log('promise complete: ' + result);}, function (err) {    console.log('promise rejected: ' + err);});child.stdout.on('data', function (data) {    console.log('stdout: ' + data);});child.stderr.on('data', function (data) {    console.log('stderr: ' + data);});child.on('close', function (pre) {    console.log('closing pre: ' + pre);});


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

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

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