2016-06-11 12 views
22

मैं टाइपस्क्रिप्ट का उपयोग करके कोणीय 2 में एक वेबसाइट विकसित कर रहा हूं और मैं सोच रहा था कि thread.sleep(ms) कार्यक्षमता को लागू करने का कोई तरीका है या नहीं।टाइपस्क्रिप्ट नींद

मेरा उपयोग केस कुछ सेकंड के बाद फ़ॉर्म सबमिट करने के बाद उपयोगकर्ताओं को रीडायरेक्ट करना है जो HTML या जावास्क्रिप्ट में बहुत आसान है लेकिन मुझे यकीन नहीं है कि यह टाइपस्क्रिप्ट में कैसे करें।

बहुत धन्यवाद,

+5

टाइपस्क्रिप्ट जावास्क्रिप्ट का एक सुपरसेट है। तो इसे जावास्क्रिप्ट में लिखें, और वहां आप जाते हैं: आपके पास टाइपस्क्रिप्ट समाधान है। –

उत्तर

31

आप के रूप में यह अब केवल ES6 के लिए टीएस के लिए समर्थित ES5 समर्थन के लिए async/await साथ टाइपप्रति 2.0 के लिए इंतजार करना पड़ता है संकलन।

आप देरी समारोह बनाने में सक्षम हो जाएगा:

function delay(ms: number) { 
    return new Promise(resolve => setTimeout(resolve, ms)); 
} 

और यह

await delay(300); 

फोन अभी आप

setTimeout(FunctionName, Milisecons); 

या

setTimeout(()=>{/*Your Code*/}, Milisecons); 
उपयोग करने के लिए

अद्यतन: टाइपस्क्रिप्ट 2.1 async/await के साथ है।

बस भूलें कि आपको Promise कार्यान्वयन की आवश्यकता है जब आप ES5 को संकलित करते हैं, जहां वादा मूल रूप से उपलब्ध नहीं है।

+1

** अद्यतन **: _async/प्रतीक्षा और ईएस 5/ES3_ के लिए जेनरेटर समर्थन टाइपस्क्रिप्ट 2.1 –

+4

ईवेंट में बिना प्रतीक्षा किए स्थानांतरित हो गया था, आप देरी (20000) कर सकते हैं .then (() => { – ZZZ

10

यह काम करता है: (टिप्पणी के लिए धन्यवाद)

setTimeout(() => 
{ 
    this.router.navigate(['/']); 
}, 
5000);