私は約束を返す関数を持っています。約束の最初のブロックで、私はXMLをいくつか取り出し、それをfeed.xmlというファイルに書き出します。次に、次のブロックで、そのXMLをJSONに変換します。ここでの問題は、ファイルがシステムに書き込まれる前に、関数がxmlファイルをJSONに変換しようとしていることです。最初のブロックで2番目のブロックを待機させるにはどうすればよいですか?あなたの要求が完了する前に、あなたが解決しているJS Promiseを使用して非同期呼び出しを処理する方法は?
var out = fs.createWriteStream('./feed.xml');
var fetchJSON =() => {
return new Promise((resolve, reject) => {
var feedURL = 'http://www2.jobs2careers.com/feed.php?id=1237-2595&c=1&pass=HeahE0W1ecAkkF0l';
request(feedURL).pipe(zlib.createGunzip()).pipe(out);
resolve();
}).then(() => {
fs.readFile('feed.xml', function(err, data) {
parser.parseString(data, function(err, result) {
console.log(result);
});
});
});
};
fetchJSON();
(request(feedURL).pipe(zlib.createGunzip())。pipe(out));解決する必要があります。 – Hosar