let p = new Promise((res, rej) => {
// Ждем 7сек; вызываем функцию res с аргументом 2
setTimeout(res, 7000, 2);
})
// Возвращаем новый промис; ждем 5сек; вызываем функцию res с аргументом 6 (2 + 4)
.then((data) => new Promise((res) => setTimeout(res, 5000, data + 4)))
.then((data) => console.log('data', data)); // 'data' 6
setTimeout(() => console.log(p), 10000); // Просто выведем промис
function chunked(str, numChunks) {
const chunkSize = Math.ceil(str.length / numChunks);
return Array.from(
{ length: numChunks },
(n, i) => str.slice(i * chunkSize, (i + 1) * chunkSize)
);
}
function chunked(str, numChunks) {
return str.match(RegExp(`.{1,${Math.ceil(str.length / numChunks)}}`, 'g'));
}
function chunked(str, numChunks) {
return str.split(RegExp(`(.{${Math.ceil(str.length / numChunks)}})`)).filter(Boolean);
}
неаккуратненько как-то:
chunked('test', 3) // [ "te", "st", "" ]
const chunked = (str, numChunks) =>
numChunks <= str.length
? Array.from(
{ length: numChunks },
function(n, i) {
return str.slice(i * this, i === numChunks - 1 ? str.length : (i + 1) * this);
},
str.length / numChunks | 0
)
: 'извини, столько непустых кусков нарезать нельзя';
function chunked(str, numChunks) {
const chunkSize = str.length / numChunks | 0;
const numLooseItems = str.length % numChunks;
return Array.from(
{ length: numChunks },
function(_, i) {
return str.slice(this(i), this(i + 1));
},
i => i * chunkSize + Math.min(i, numLooseItems)
);
}
y = 4 - x/2
function Fn(x) {
return 4 - x/2;
}
const ROUTES = {
blog: {
art: 'page-art',
toString() {
return 'section-blog'
}
}
}
ROUTES.blog.art // page-art
ROUTES.blog // object
'text: ' + ROUTES.blog // text: section-blog
let [a, b, ,c] = [1, 2, 3, 4]
let {a, b, c} = {a:1, b:2, c:3}
object ColorHandler {
/**
* Color sample: 556A74
*/
fun getColorName(color: String): String {
if (color in names.keys)
return names[color]!!
val r = color.slice(0..1).toInt(16)
val g = color.slice(2..3).toInt(16)
val b = color.slice(4..5).toInt(16)
var currentMin: Pair<Int, String>? = null
var range: Int
names.forEach { (colorValue, name) ->
range = (
(r - colorValue.slice(0..1).toInt(16)).pow() +
(g - colorValue.slice(2..3).toInt(16)).pow() +
(b - colorValue.slice(4..5).toInt(16)).pow()
)
when {
currentMin == null -> {
currentMin = range to name
}
currentMin!!.first > range -> {
currentMin = range to name
}
currentMin!!.first < range -> {
return@forEach
}
}
}
return currentMin!!.second
}
}