ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
jsאורח · ·
 

הודעה פורסם: 07/08/2017 - 11:04
נושא ההודעה: לולאה סינכרונית ב js

אני צריך לבצע בקשות http בסדר מסויים (רק כשמתקבלת תשובה אפשר להמשיך לבאה) לפי מערך כתובות שיש לי.
גוגל אומר - רקורסיה. ואני שואל - ברצינות? זה הכי טוב שלך js ?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 07/08/2017 - 11:11
נושא ההודעה:

אם אתה משתמש בספריית promises כלשהי, כגון:

  • אנגולר 1 מספקת לדוגמה את $q
  • ספריית Q
  • Promise שנכנס ב-ES 2015
  • קריאות ה-ajax של jQuery

אפשר פשוט להחזיר promise מה-then של ה-promise הקודם ואז לשרשר אותם בצורה קלה יותר.

ראה לדוגמה:
https://github.com/kriskowal/q#chaining

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
eאורח · ·
 

הודעה פורסם: 07/08/2017 - 11:47
נושא ההודעה:

- האופציה הבסיסית זה לעשות callbacks בשרשרת אבל זה קוד די נוראי
- אפשר להשתמש ב-promise כמו שמאיר הציע
- הפתרון הכי מודרני זה async/await אם יש תמיכה בזה בסביבה שאתה עובד בה או להעביר את הקוד דרך babel
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
jsאורח · ·
 

הודעה פורסם: 07/08/2017 - 12:07
נושא ההודעה:

אולי לא הבנתם.
אני מדבר על מערך של מאה כתובות, לא שתים שלוש.
אני עובד עם node וצריך לשלוח http post נגיד ... לטלפוני ה voip אצלי באירגון. ויש לי מערך של הIP ים שלהם. (לצורך העניין אני חייב את זה סינכרוני. בקשה אחת פר זמן נתון.)
או אולי אני לא הבנתי.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
jsאורח · ·
 

הודעה פורסם: 07/08/2017 - 12:12
נושא ההודעה:

או נגיד .. שיש שרת שאני רוצה לשלוח אליו מאות http POST אבל לא לחנוק אותו.
לשלוח POST אחד ולנוח רבע שניה ..
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10514 · מיקום: כדור הארץ
 

הודעה פורסם: 07/08/2017 - 12:45
נושא ההודעה:

אתה יכול לבנות לולאה על המערך, באותו עמוד שקישרתי לעיל, ראה גם sequences:
https://github.com/kriskowal/q#sequences

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
jsאורח · ·
 

הודעה פורסם: 07/08/2017 - 13:15
נושא ההודעה:

mksoft :
אתה יכול לבנות לולאה על המערך, באותו עמוד שקישרתי לעיל, ראה גם sequences:
https://github.com/kriskowal/q#sequences

סליחה שמיהרתי לפסול. נראה פיתרון הולם.
(ארררג! פיכסה של שפה Sad )
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 07/08/2017 - 21:39
נושא ההודעה:

http://caolan.github.io/async/docs.html#eachLimit
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
ינוןלא בפורום כעת ת.הצטרפות: 30/11/2008 · הודעות: 26 ·
 

הודעה פורסם: 08/08/2017 - 12:12
נושא ההודעה:

מצטרף לתשובה הפופולרית - Promises. יש ב JS פקודת await שמחכה לביצוע Promise, ואפשר ללכת בשני כיוונים:

1. אם הסדר חשוב נבצע כל Promise ואז נתחיל את הבא אחריו. זה יראה בערך כך:

קוד:

// define an array of urls
const urls = [...];

function downloadAllInOrder() {
  for (let url of urls) {
    const res = await fetch(url);
    const body = await res.text();
    console.log(body);
  }
}



2. אם הסדר לא חשוב אפשר ליצור Promise יחיד מכל המערך ואז כל הבקשות מבוצעות במקביל. זה יראה בערך כך:

קוד:

// define an array of urls
const urls = [...];

function downloadAllInOrder() {
  const responses = await Promise.all(urls.map(fetch));
  const bodies    = await Promise.all(responses.map(r => r.text()));

  // now bodies is an array of all the responses
  console.log(bodies[2]);
}



לא בדקתי אף אחת מהפונקציות אז ייתכנו אי דיוקים.
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [js]
  2. mksoft
  3. אורח [e]
  4. אורח [js]
  5. אורח [js]
  6. mksoft
  7. אורח [js]
  8. אורח
  9. ינון