getUser().then(u => { if (!u) return spammers }) Зарезолвится с массивом spammers, потом вы вызываете .then(() => collectSpammers(spammers)), и процесс зациклился, пока getUser() возвращает null следующий в цепочке then будет вызывать collectSpammers
а должны ли в результатах голосований наблюдаться какие-нибудь закономерности или нет?
Разумеется, должны. Другой вопрос, какие именно? И в чем их причина? Очевидно, что партия ведущая более активную предвыборную кампанию, при прочих равных должна набрать больше. Но в чем например причина концентрации результатов в Саратовской области вокруг одной точки?
executor
A function that is passed the arguments resolve and reject. The executor function is executed immediately by the Promise implementation, passing resolve and reject functions (the executor is called before the Promise constructor even returns the created object). The resolve and reject functions, when called, resolve or reject the promise respectively. The executor normally initiates some asynchronous work and then, once that completes, calls either the resolve or reject function to resolve the promise or else reject it if an error occurred.
Да, он выполняется при создании промиса не зависимо от того, сколько раз у него вызывался метод then() (даже если 0 раз). Думаю, это хотел сказать автор, просто выразил свою мысль некорректно. Executor кстати не асинхронно запускается, другое дело, что внутри него как правило есть асинхронный код. А в целом, все эти моменты легко понять, если на вывод этого кода внимательно посмотреть:
Обратите внимание на то, что каждая цепочка обещаний заканчивается вызовом catch(). Если этого не делать, то возникающие ошибки будут пропадать в недрах обещаний и, тогда невозможно будет установить, где произошла ошибка.
Неправда, нигде они не теряются и вполне их можно захендлить
window.addEventListener('unhandledrejection', e => {
console.log('handle', e);
return e.preventDefault();
});
Если обработчика не будет, то промис просто кинет exception, который можно увидеть в консоли и принять меры.
Меня вот интересует, что понимается под «значимой частью» программного обеспечения?
Вот например https://github.com/mtschirs/js-objectdetect/blob/master/js/objectdetect.js:
/**
* Converts from a 4-channel RGBA source image to a 1-channel grayscale
* image. Corresponds to the CV_RGB2GRAY OpenCV color space conversion.
*
* @param {Array} src 4-channel 8-bit source image
* @param {Array} [dst] 1-channel 32-bit destination image
*
* @return {Array} 1-channel 32-bit destination image
*/
convertRgbaToGrayscale = function(src, dst) {
var srcLength = src.length;
if (!dst) dst = new Uint32Array(srcLength >> 2);
for (var i = 0; i < srcLength; i += 2) {
dst[i >> 2] = (src[i] * 4899 + src[++i] * 9617 + src[++i] * 1868 + 8192) >> 14;
}
return dst;
}
Я взял эту реализацию общеизвестного алгоритма, со временем, в моем коде она превратилась в:
const GRAYSCALE_COEF_R = 4899;
const GRAYSCALE_COEF_G = 9617;
const GRAYSCALE_COEF_B = 1868;
/**
* Converts RGBA image to grayscale.
*
* @param {ArrayBuffer} src Source buffer with 4-channel RGBA image
* @param {ArrayBuffer} dst Destination buffer for 8bit 1-channel grayscale image
*/
function grayscale(src, dst) {
const srcView = new Uint8Array(src);
const dstView = new Uint8Array(dst);
for (let i = 0; i < srcView.length; i += 4) {
dstView[i >> 2] = ((srcView[i] * GRAYSCALE_COEF_R) +
(srcView[i + 1] * GRAYSCALE_COEF_G) +
(srcView[i + 2] * GRAYSCALE_COEF_B) + 8192) >> 14;
}
}
Означает ли это, что я использую «значимую часть» библиотеки https://github.com/mtschirs/js-objectdetect?
Ну, если ядро винды может предоставить тот же api и те же возможности что и линукс, то почему нет, но запускать он очевидно сможет только windows процессы.
Тут немного другая задача решается
getUser().then(u => { if (!u) return spammers })
Зарезолвится с массивом spammers, потом вы вызываете.then(() => collectSpammers(spammers))
, и процесс зациклился, пока getUser() возвращает null следующий в цепочке then будет вызывать collectSpammersПредлагаю все выкинуть и поставить код google analytics на страницу.
Разумеется, должны. Другой вопрос, какие именно? И в чем их причина? Очевидно, что партия ведущая более активную предвыборную кампанию, при прочих равных должна набрать больше. Но в чем например причина концентрации результатов в Саратовской области вокруг одной точки?
Всегда, кроме тех случаев, когда он получается асинхронно :)
Да, он выполняется при создании промиса не зависимо от того, сколько раз у него вызывался метод then() (даже если 0 раз). Думаю, это хотел сказать автор, просто выразил свою мысль некорректно. Executor кстати не асинхронно запускается, другое дело, что внутри него как правило есть асинхронный код. А в целом, все эти моменты легко понять, если на вывод этого кода внимательно посмотреть:
Неправда, нигде они не теряются и вполне их можно захендлить
Если обработчика не будет, то промис просто кинет exception, который можно увидеть в консоли и принять меры.
Вот например https://github.com/mtschirs/js-objectdetect/blob/master/js/objectdetect.js:
Я взял эту реализацию общеизвестного алгоритма, со временем, в моем коде она превратилась в:
Означает ли это, что я использую «значимую часть» библиотеки https://github.com/mtschirs/js-objectdetect?
Я написал, что не получится так.