जावास्क्रिप्ट में महंगे कम्प्यूटेशंस के लिए वादे सभी () का उपयोग करें? [डुप्लीकेट]
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
, तो सभी कॉलबैक कतारबद्ध हो जाएंगे और एक के बाद एक, एक ही धागे में चलेंगे।