【发布时间】:2015-08-02 16:47:23
【问题描述】:
我使用以下代码,我想将其转换为承诺,所以我已经开始承诺子进程,但我的问题是如何将所有转换为承诺, 我需要将代码划分为其他(参见 cmets)方法 当我按原样使用代码时,它的工作正常。
var Promise = require('bluebird'),
fs = require('fs').
module.exports = {
createNew: function () {
fs.readFile("c://test.txt", 'utf8', function (err, data) {
if (err) {
return console.log(err);
}
// 1. from Here to needed to divide to new method
// which just return cmd value
var fileKeyValObj = {};
data.split("\n").forEach(function (element) {
var sep = element.indexOf(':');
});
var cmd = fileKeyValObj['name'];
// 2. this code should be in additional method
if (typeof cmd !== 'undefined') {
var exec = Promise.promisify(require('child_process').exec);
var childProcess = exec(cmd).spread(function (stdout, stderr) {
}).catch(function (error) {
console.log(error)
});
}
});
},
}
【问题讨论】:
-
您要究竟做什么?你的代码写得不好,因此很难看到你的最终目标。
-
@royhowie- 你写的不好是什么意思?
-
不清楚您要做什么。添加更多 cmets 来解释每个步骤。例如,您使用
Promise.spread,但看起来cmd是单个命令,而不是命令数组。
标签: javascript node.js promise bluebird