2017-01-20 5 views
14

नोड में का इंतजार है मैंने सोचा था कि async/इंतजार नोड 7.4 में समर्थित किया गया है, लेकिन इस उदाहरण काम नहीं करता:async का उपयोग करते हुए/7.4

const Promise = require('bluebird'); 

async function main(){ 
    await Promise.delay(1000) 
} 

main(); 

परिणाम में:

async function main(){ 
     ^^^^^^^^ 
SyntaxError: Unexpected token function 

मैं async कैसे उपयोग कर सकते हैं/नोड 7.4 के साथ इंतजार?

+0

की संभावित डुप्लिकेट [async NodeJS साथ इंतजार है 7] (http://stackoverflow.com/questions/41347260/async-await-with-nodejs- 7) –

उत्तर

48

हाँ async-इंतजार Node.js v7 में समर्थित है, लेकिन इसके harmony ध्वज के पीछे बंद कर दिया के साथ फिर से प्रयास करें। विशेषताएं जो अभी तक तैयार नहीं हैं, इस झंडे के पीछे हैं।

Node.js में async-इंतजार उपयोग करने के लिए बस इस ध्वज के साथ नोड सेवा चलाने V7 -

node --harmony-async-await app.js

async-इंतजार आधिकारिक रिलीज, जिसमें शुरू किया जाएगा Node.js v8 के लिए उम्मीद है अप्रैल।

आप this अपनी स्थिति की जांच के लिए पुल अनुरोध का पालन कर सकते हैं। मूल रूप से async-await की सही कार्यप्रणाली V8 इंजन v5.5 के एकीकरण पर Node.js. में निर्भर है। वर्तमान में Node.js V8 v5.4 का उपयोग करता है जिसे इस पुल अनुरोध द्वारा हल किया जाता है।

अद्यतन 1 - ऐसा लगता है कि वी 8 v5.5 Node.js v7 पर आ रहा है। अधिक जानकारी के लिए this पुल अनुरोध का पालन करें।

अपडेट 2 - अच्छी खबर दोस्तों! Node.js संस्करण 7.6.0 अब फ़ंक्शंस का आधिकारिक तौर पर --harmony ध्वज का उपयोग किए बिना फ़ंक्शन का समर्थन करता है क्योंकि V8 इंजन 5.5 सफलतापूर्वक पोर्ट किया गया है।

अब आपको केवल --harmony ध्वज का उपयोग करने की आवश्यकता है यदि आपका Node.js संस्करण 7.0 से 7.5.0 (समावेशी) के बीच है। पूर्ण चेंजलॉग के लिए here देखें।

2

आपको काम करने के लिए सद्भावना ध्वज की आवश्यकता होगी।

node --harmony-async-await myscript.js

14

नोड.जेएस 7.6.0 कई घंटे पहले जारी किया गया और इसमें v8 5.5 शामिल था। अब आप ध्वज के बिना async/प्रतीक्षा कर सकते हैं।

2

नोड संस्करण 7.6 अब बॉक्स के बाहर async/प्रतीक्षा का समर्थन करता है। यदि आपने अभी तक यह कोशिश नहीं की है, तो आपको इसे तुरंत अपनाना चाहिए और कभी वापस नहीं देखना चाहिए।

const makeRequest =() => 
     getJSON() 
     .then(data => { 
      console.log(data) 
      return "done" 
     }) 

    makeRequest() 

और का उपयोग कर async/इंतजार:

const makeRequest = async() => { 
    console.log(await getJSON()) 
    return "done" 
} 

makeRequest() 
संबंधित मुद्दे