मैं नई ES7 async सुविधाओं का उपयोग करने की कोशिश कर रहा हूं और मुझे आशा है कि मेरी समस्या को हल करने से भविष्य में दूसरों की मदद मिलेगी।एसिंक फ़ंक्शन का संयोजन + प्रतीक्षा + सेटटाइमआउट
async function asyncGenerator() {
// other code
while (goOn) {
// other code
var fileList = await listFiles(nextPageToken);
var parents = await requestParents(fileList);
// other code
}
// other code
}
function listFiles(token) {
return gapi.client.drive.files.list({
'maxResults': sizeResults,
'pageToken': token,
'q': query
});
}
समस्या यह है कि मेरी जबकि पाश बहुत तेजी से चलाता है और स्क्रिप्ट गूगल एपीआई के प्रति सेकंड बहुत अधिक अनुरोध भेजता है,: यह मेरा कोड है जो काम कर रहा है। इसलिए मैं एक नींद समारोह बनाना चाहता हूं जो अनुरोध में देरी करता है। इस प्रकार मैं अन्य कार्यों में देरी के लिए इस फ़ंक्शन का उपयोग भी कर सकता था। अगर अनुरोध में देरी करने का कोई और तरीका है, तो कृपया मुझे बताएं।
वैसे भी, यह मेरा नया कोड है जो काम नहीं करता है। अनुरोध की प्रतिक्रिया को सेटटाइमआउट के भीतर अनाम async फ़ंक्शन पर वापस कर दिया गया है, लेकिन मुझे नहीं पता कि मैं नींद फ़ंक्शन resp प्रतिक्रिया के जवाब कैसे वापस कर सकता हूं। प्रारंभिक async जनरेटर समारोह के लिए।
async function asyncGenerator() {
// other code
while (goOn) {
// other code
var fileList = await sleep(listFiles, nextPageToken);
var parents = await requestParents(fileList);
// other code
}
// other code
}
function listFiles(token) {
return gapi.client.drive.files.list({
'maxResults': sizeResults,
'pageToken': token,
'q': query
});
}
async function sleep(fn, par) {
return await setTimeout(async function() {
await fn(par);
}, 3000, fn, par);
}
मैं पहले से ही कुछ विकल्पों की कोशिश की है: एक वैश्विक चर में प्रतिक्रिया भंडारण और गुमनाम समारोह के भीतर, सो समारोह से इसे वापस कॉलबैक आदि
'Promise.all' दृष्टिकोण से प्यार करें। इतना आसान और सुरुचिपूर्ण! –
'var [माता-पिता] 'का संकेत क्या दर्शाता है? मैंने इसे पहले नहीं देखा है और यह – natedog
@NateUsher यह [सरणी विनाशकारी] (https: // stackoverflow) पर एक कठिन बात है।कॉम/क्यू/3 9 86348/1048572) – Bergi