2017-04-07 32 views
7

bekliyoruz kullanarak/senkron olmasını döngü gerektiren bir işlev için bekliyor.Beklenmeyen tanımlayıcı Şu anda asenk kullanmaya çalışıyorum

let channel = await method.run(dataParsed.cid); 
        ^^^^^^ 
SyntaxError: Unexpected identifier 

Ne olmuş nedeni olabilir:

async channelList(resolve, reject) { 
    let query = ['channellist'].join(' '); 

    this.query.exec(query) 
    .then(response => { 
     let channelsRaw = response[0].split('|'); 
     let channels = []; 

     channelsRaw.forEach(data => { 
      let dataParsed = ResponseParser.parseLine(data); 

      let method = new ChannelInfoMethod(this.query); 
      let channel = await method.run(dataParsed.cid); 

      channels.push(channel); 
     }); 

     resolve(channels); 
    }) 
    .catch(error => reject(error)); 
} 

bunu çalıştırmayı deneyin, bu hatayı alıyorum:

Bu

fonksiyonudur?
Teşekkürler!

cevap

30

async, channelList üzerinde tanımlanmıştır ve await'un bulunduğu ok işlevinde değil. O ok işlevine async taşı:

channelsRaw.forEach(async (data) => { 
    let dataParsed = ResponseParser.parseLine(data); 

    let method = new ChannelInfoMethod(this.query); 
    let channel = await method.run(dataParsed.cid); 

    channels.push(channel); 
}); 

Ayrıca, zaten zaman uyumsuz, sadece tüm vaat zincirinin zaman uyumsuz orada olabilir kullandığınız beri.

+1

Ben şimdi çok saçma hissediyorum bir geri aramasında olduğunu fark etmedi. Teşekkürler :) –

İlgili konular