2017-04-07 16 views
7

का उपयोग करते समय अप्रत्याशित पहचानकर्ता मैं वर्तमान में एक फ़ंक्शन के लिए async/प्रतीक्षा करने का प्रयास कर रहा हूं जिसके लिए लूप को सिंक्रोनस होना आवश्यक है।प्रतीक्षा

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

क्या यह का कारण हो सकता:

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)); 
} 

जब मैं इसे चलाने के लिए प्रयास करते हैं, मैं इस त्रुटि मिलती है:

इस समारोह है?
धन्यवाद!

उत्तर

30

आपका asyncchannelList पर परिभाषित किया गया है और तीर फ़ंक्शन पर नहीं है जहां await निहित है। जब से तुम async वैसे भी, तुम बस पूरे वादा श्रृंखला async तुम वहाँ हो सकता है का उपयोग कर रहे अलावा

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); 
}); 

,: कि तीर कार्य करने के लिए async ले जाएँ।

+1

मुझे अब इतना मूर्खतापूर्ण लगता है, यह नहीं पता था कि यह कॉलबैक में था। धन्यवाद :) –

संबंधित मुद्दे