等待处理完成后再导出Node.js模块
Wait until processing completes before exporting Node.js module?
我正在加载一个配置对象,然后在for中重新映射其属性。。在下面的循环中(它对.styles的值进行一些字符串串联,而.styles只是一个字符串数组(。当我需要该模块时,显然还没有进行重新映射。我猜这是某种异步问题,但我不知道如何处理。有什么建议吗?
// Init vars
var buildConfig = require('./build-config.js');
var cssPath = buildConfig.paths.cssPath;
var bundle = buildConfig.bundle;
// Callbacks
var setPathsGeneric = function(basePath, extName) { // Currying function
return function(val, index, self) {
return basePath + val + extName;
};
};
var setCSSPaths = setPathsGeneric(cssPath, '.css');
// Map key values to actual URL paths
for (var key in bundle) {
if(bundle[key].styles && bundle[key].styles.length) {
bundle[key].styles.map(setCSSPaths);
}
}
module.exports = {
bundle: bundle
};
当我需要该模块时,显然还没有进行重新映射。我猜这是某种异步问题,但我不确定如何处理它。
您的代码是100%同步的,因此node执行所有"重新映射"代码在导出CCD_ 1对象之前同步。
我认为,您的问题是Array.prototype.map((不修改数组,而是返回新的数组。因此,您应该自己为bundle[key].styles
分配新值:
bundle[key].styles = bundle[key].styles.map(setCSSPaths);
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- 正在删除node.js中已验证的网站
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 在索引.html和应用.js [node.js] 之间共享变量
- Node.js中的JavaScript原型对象效率
- node.js请求数据事件未在CORS ajax调用中触发
- 使用node.js制作网站
- 使用node.js服务器中的evernote api获取note内容
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 使用CI和CodeDeploy对node.js应用程序进行连续部署
- 在Node.js中上传和检索图像
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 如何使用 Node JS 获取 JSON 嵌套数组值