最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何异步输出模块中的NodeJS

运维笔记admin11浏览0评论

如何异步输出模块中的NodeJS

如何异步输出模块中的NodeJS

我无法导出我自己写的异步方式的模块。

const glob = require('glob');

var confFiles;

glob("conf/**/*.conf", function (er, files) {
    confFiles = files;
});

module.exports = new Promise(function(resolve, reject) {
    resolve(confFiles);
});

这是模块本身,我想在其他文件访问confFiles但问题是,水珠不是异步,我无法找到我的方式来解决这个问题。

回答如下:

我导出load方法代替:

// conf.js
const glob = require('glob')

module.exports.load = () => new Promise((resolve, reject) => {
  glob('conf/**/*.conf', function (err, files) {
    if (err) return reject(err)

    resolve(files)
  })
})

然后在用户态:

// index.js
const conf = require('./conf.js')

conf.load()
  .then(files => {
    console.log(files)
  })

或者,你可以只使用globe.sync代替,避免处理完全异步代码:

// conf.js
const glob = require('glob')

module.exports = glob.sync('conf/**/*.conf')

然后在用户态:

// index.js
const files = require('./conf.js')
console.log(files)

只要记住,globe.sync是blocking操作。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论