जावास्क्रिप्ट में महंगे कम्प्यूटेशंस के लिए वादे सभी () का उपयोग करें? [डुप्लीकेट]

Nov 26 2020

क्या एक महंगी गणना में तेजी लाने के लिए वादे का उपयोग करने का कोई मतलब नहीं है? उदाहरण के लिए:

// महंगी गणना

const data = [1, 2, 3];

const f = (x) => {
  return x*x; // or a more complex formula
}

// कोई वादा नहीं

const f_data = data.map(f);

// वादों के साथ

const f_data = Promise.all(data.map((e) => Promise((e) => f(e))).then(res => res).catch(...);

क्या निष्पादन की गति में कोई वास्तविक अंतर होगा?

जवाब

GuerricP Nov 26 2020 at 04:01

नहीं, यदि आप कम्प्यूटिंग को गति देना चाहते हैं तो आपको मल्टीथ्रेडिंग का लाभ उठाने के लिए श्रमिकों का उपयोग करना होगा।

यदि आप उपयोग करते हैं Promise.all, तो सभी कॉलबैक कतारबद्ध हो जाएंगे और एक के बाद एक, एक ही धागे में चलेंगे।