const promises = [
Promise.reject('rejected1'),
Promise.reject('rejected2'),
Promise.resolve('resolved'),
];1) err => {throw err;}
2) err => {throw err;}
3) onFullfiled
4) onRejected,
5) onRejected
6) v => v,С какого количества записей индексация имеет смысл?
Сделал выборку по определенному имени, вышло 75-90 мсек.
SELECT name FROM users WHERE name='Mike';
Добавил индекс CREATE INDEX name_idx ON users (name);
Выборка так и осталась в пределах 75-85 мсек.
1) Подскажите какую лучше поставить операционную систему? Если Linux, то в сторону каких дистрибутивов смотреть. Хотелось бы удалённо подключаться к этому ПК для мониторинга или обновления файлов с github.
2) Актуален ли для подобного Docker или слишком много ресурсов будет отнимать?
3) Правильно ли запускать различные сайты просто на разных портах роутера?
5) Раз выполняется проброс порта, то как это обезопасить?
package main
import "fmt"
type MyError struct {
Message string
}
func (e MyError) Error() string {
return e.Message
}
func (e MyError) Smth() {
}
type SomeInterface interface {
Smth()
}
func main() {
var err SomeInterface
err = MyError{"Something went wrong"}
// Проверяем, реализует ли err интерфейс error
if _, ok := err.(error); ok {
fmt.Println("err реализует интерфейс error")
} else {
fmt.Println("err НЕ реализует интерфейс error")
}
}Ведь когда мы создаем переменную, то в нее копируется значение другой переменной и мы работаем с копией
Начав работать с языком Go начал придавать значение экономии памяти - не создавать лишних переменных.
this.content.querySelectorAll('.cell').forEach((cell) => {
let timer = null; // дескриптор отложенного обработчика одного клика
cell.addEventListener('click', (e) => {
if(timer)
clearTimeout(timer); // при каждом клике сбрасываем отложенный обработчик обработки одного клика
if(e.detail == 1) // на первом клике устанавливаем отложенный обработчик
timer = setTimeout(handleClickCell, 250); // Выполнение функции по одинарному клику после ожидания второго клика 250мс
if(e.detail == 2) // на втором - выполнение обработчика двойного клика
{
// благодаря счетчику detail в ивенте можем посчитать длину очереди непрерывных кликов, и в нужный момент выполнить функцию на втором клике
console.log('111');
}
} );
});
(NULL, '$val1', '$val2')в 2013 на английском и только в 2016 году на русском, а это почти 10 лет назад,Глобальных измений за 10 лет было не так много, упражнения в этой книге в целом довольно интересные (если затык с ними то можно на гите поискать решения), поэтому в целом книга достаточно актуальная.
$(".js-answer").click(function() {
let __this = $(this);
__this.addClass("current");
setTimeout(function() {
__this.removeClass("current");
}, 1400);
});$(".js-answer").click(function() {
$(this).addClass("current");
setTimeout(() => {
$(this).removeClass("current");
}, 1400);
}); UPDATE link_count SET count=count+? WHERE link_id=? and number=? $sql = "UPDATE `list`
SET count1 = CASE WHEN id = ? AND ? = 1 THEN count1 - ? ELSE count1 END,
count2 = CASE WHEN id = ? AND ? = 2 THEN count2 - ? ELSE count2 END,
count3 = CASE WHEN id = ? AND ? = 3 THEN count3 - ? ELSE count3 END
WHERE id = ?";
$stmt = $conn->prepare($sql);
foreach ($data as $id => $value) {
$idParts = explode("-", $id);
$count = $value['count'];
$stmt->execute([$idParts[0], $idParts[1], $count, $idParts[0], $idParts[1], $count, $idParts[0], $idParts[1], $count, $idParts[0]]);
}