0
私はthisを読んでおり、例に基づいてコードを書いています。ノードストリームが終了しません終了
マイコード:=スルー
CONSTは( 'through2')を必要とします。 const bluebird = require( 'bluebird');
function streamToPromise(stream) {
return new Promise(function(resolve, reject) {
stream.resume();
stream.on("end", resolve);
stream.on("error", reject);
});
};
module.exports = {
up: function up() {
console.log('startstream');
// Doc is sequelize Model
const stream = Doc.createReadStream({
include: [
{
repository: AssociatedRepo,
as: 'on',
required: false,
},
],
});
stream.pipe(through({ objectMode: true }, (doc, enc, cb) => {
console.log('docid', doc.id);
return doc.destroy()
.then(() => cb());
}));
return streamToPromise(stream).then((data) => {
console.log('xxxxxxxxxx', data);
return null;
});
},
};
上記のプログラムを使用して、約400件のレコードを読み取り、削除しようとしました。ログからは、ストリームの約束(streamToPromise(stream)
)が解決されていますが、まだいくつかのレコードが残っていることがわかりました。ログから、私は得た:
xxxxxxxxxx undefined
docid 89934915596
これを修正するには?ありがとう