Apr. 15th, 2016

orleanz: (main)
Имитируем многопоточное вычисление условий в операторе ИФ

(Имитируем, потому что, насколько я понимаю, это только на уровне логики программы тут у нас все идет параллельно и поэтому иногда первый промис быстрее второго, иногда наоборот, а на уровне исполнения - JS движок исполняет все в одной треде. Для того, чтобы была настоящая, честная много-поточность, можно использовать https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers, там действильно задачи будут распределяться по ядрам процессора равномерно).

Пример ниже запускается в Нодной консоли

var p1 = new Promise(function(resolve, reject) {
  setTimeout( resolve, Math.random() * 4000 + 1000, " One is done");
});
var p2 = new Promise(function(resolve, reject) {
  setTimeout( resolve, Math.random() * 4000 + 1000, " Two is done");
});

p1.then(function(a) {console.log(a);});
p2.then(function(a) {console.log(a);});

Promise.race([p1, p2]).then(function(value) {console.log("race complete: " + value);});

setTimeout(function() {console.log("Program quit\n");}, 6000)

Profile

orleanz: (Default)
orleanz

December 2018

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 18th, 2025 06:43 am
Powered by Dreamwidth Studios