Node.js Async/Await:理解Async/Await的问题
我正在使用async/await。我想先显示我从可读流中检索到的数据,然后显示相应的消息 这是我的密码:Node.js Async/Await:理解Async/Await的问题,node.js,express,asynchronous,async-await,node-modules,Node.js,Express,Asynchronous,Async Await,Node Modules,我正在使用async/await。我想先显示我从可读流中检索到的数据,然后显示相应的消息 这是我的密码: var stream = async function (){ var myStream = fs.createReadStream(__dirname+"/someText.txt",'utf8'); await myStream.on('data', (chunk)=>{ console.log(chunk
var stream = async function (){
var myStream = fs.createReadStream(__dirname+"/someText.txt",'utf8');
await myStream.on('data', (chunk)=>{
console.log(chunk)// I want to display this first
})
}
stream()
console.log('listening') // and then move on to display this one
流侦听器不是承诺,您不应该在myStream.on('data')上等待。你可以这样做,但它会立即解决 将流侦听器包装在一个
Promise
中并等待它,为此您可以使用
我明白了。我对结尾行的语法感到困惑。async以括号开始,我不理解这个。在它的花括号的末尾插入括号//this one here->(async()=>{await stream();//await只能在
async
function console.log('listing');})中使用()//
const { once } = require('events');
var stream = async function (){
var myStream = fs.createReadStream(__dirname+"/someText.txt",'utf8');
myStream.on('data', (chunk) => {
console.log(chunk)// I want to display this first
});
// Wait until everything has been read
// Or an error has been triggered
await once(myStream, 'close');
}
(async() => {
await stream(); // await can only be used in `async` function
console.log('listening');
})().catch(console.error);