अगर मैं इस कोड का उपयोग करता हूं:
async.eachLimit (body.photos.photo, 10, फ़ंक्शन (फोटो) {var flickr_getphoto_path = "....."; request.get ({url: flickr_host_url + flickr_getphoto_path, json: true}, फ़ंक्शन (त्रुटि, प्रतिक्रिया, शरीर) {if (! त्रुटि & amp; ; Response.statusCode == 200) {console.log ("आकार लंबाई:" + body.sizes.size.length); var source_url = body.sizes.size [body.sizes.size.length - 1] .source; अनुरोध (source_url) .पीप (fs.createWriteStream (path_for_downloads + path.basename (source_url)));}};} 10 अनुरोधों के बाद प्रसंस्करण बंद हो जाता है (यानी पहले चक्र के बाद )। 10 चक्र होना चाहिए।
क्या कोई जानता है कि यह ठीक से काम क्यों नहीं करता?
आप async फ़ंक्शन गलत सेट अप करते हैं। तीसरा तर्क (इटरेटर फ़ंक्शन) दो मापदंडों को लेता है: आइटम को फिर से चालू किया जा रहा है, और एसेन्क को यह बताकर कॉलबैक किया जाता है कि यह हो चुका है। कॉलिंग) कॉलबैक, तो async नहीं जानता कि यह अगले बैच करने का समय है।
var async = require ('async'); Async.eachLimit (body.photos.photo, 10, cacheOnePhoto, function (err) {if (err) {console.log (err);} else {console.log ('प्रसंस्करण पूर्ण');}}} फ़ंक्शन कैशऑनफोटो (फोटो, किया गया) {var flickr_getphoto_path = "....."; Request.get ({url: flickr_host_url + flickr_getphoto_path, json: true}, फ़ंक्शन (त्रुटि, प्रतिक्रिया, निकाय) {यदि (! त्रुटि और amp; response.statusCode == 200) {console.log ("आकार लंबाई:" + Body.sizes.size.length); var source_url = body.sizes.size [body.sizes.size.length - 1]। सोर्स; अनुरोध (source_url) .पाइप (fs.createWriteStream (path_for_downloads + path.basename (source_url) ))); किया (नल);} और (किया '(' flickr_getphoto_path 'के लिए अनुरोध त्रुटि);}}); };
No comments:
Post a Comment