【发布时间】:2017-09-06 19:07:42
【问题描述】:
我有这样的代码:
let generateSmth = function(len, j, stream, headers) {
len--;
j++;
if (len === 0) {
stream.write(headers.map(function(v) {return v + '_' + j;}));
stream.end();
} else {
if (stream.write(headers.map(function(v) {return v + '_' + j;}))) {
generateSmth(len, j, stream, headers);
} else {
stream.once('drain', ()=>{generateSmth(len, j, stream, headers)});
}
}
};
const fs = require('fs'),
myStream = fs.createWriteStream('test.txt');
let myPromise = new Promise((resolve, reject)=>{
try {
generateSmth(10000, 0, ()=>{
resolve(()=>{
});
}, myStream);
} catch (error) {
reject(error);
}
});
我了解到 try/catch 不是在 generateSmth 函数中捕获错误的合适方法。但是如果我在函数中使用流,我无法理解如何捕获错误? 有人可以帮我吗?谢谢。
【问题讨论】:
-
一个提示,解释你想用你的代码做什么,它的目的是什么,而不是仅仅粘贴一个我们必须猜测它为什么存在的代码块。你想达到什么目标?
-
我需要写入一个由我的函数 generateSmth 生成的大约 10000 行的文件。我也应该使用 Promises。
标签: node.js error-handling stream promise