【发布时间】:2016-10-18 05:17:30
【问题描述】:
为什么 then() 它说 console.log('这在写入和提取之前出现');声明在写入和提取到 PDF 之前出现?我是 Promises 的新手,所以对此我有点困惑。我希望 then() 语句在写入和解析发生之后发生。
function writeToPDF(data, fileName) {
return new Promise((resolve, reject) => {
data.pipe(fs.createWriteStream(fileName), err => {
reject();
});
data.on('end', () => {
resolve();
})
});
}
function extractPDF(pdf) {
return new Promise((resolve, reject) => {
extract(pdf, {splitPages: false}, (err, text) => {
if (err) {
console.log(err);
} else {
resolve(text);
}
});
});
}
request(link).then((success, failure) => {
let fileName = './name-' + Date.now() + '.pdf';
writeToPDF(data, fileName).then(() => {
extractPDF(fileName).then((text) => {
arrayOfDocuments.push(text);
})
}, () => {
//handle error
});
}).then(() => {
console.log('THIS COMES BEFORE THE WRITING AND EXTRACTING');
});
【问题讨论】:
标签: javascript node.js request promise response