No 'Access-Control-Allow-Origin' header is present on the requested resource.
Access-Control-Allow-Origin: *
form.change(function() {
let isOk = true
// Перебираем элементы
for (let i = 0; i < inputs.length; i++) {
if (inputs[i].value == '') {
// Если неок, то останавливаем цикл — дальше нет смысла перебирать
isOk = false
break
}
}
// Если ок, добавляем класс
if (isOk) {
$('.btn-submit').addClass(_active)
}
})
Вопрос в том как можно воспроизвести файлы последовательно без одновременного запуска?
function play(list) {
let audioElements = []
for (let i = 0; i < list.length; i++) {
var audio = new Audio(list[i]['name'])
audioElements.push(audio)
if (i === 0) {
// Первое аудио запускаем
audioElements[i].play()
} else {
// Остальные — после окончания предыдущего
audioElements[i - 1].addEventListener('ended', function() {
audioElements[i].play()
list = list.slice(1)
})
}
}
}
async function voise(list) {
for (let i = 0; i < list.length; i++) {
const audio = new Audio(list[i]['name'])
// Запускаем аудио и ждём, когда закончится
await playAudio(audio)
}
}
async function playAudio(audio) {
audio.play()
await new Promise((reject, resolve) => {
audio.addEventListener('ended', () => {
resolve()
})
audio.addEventListener('error', () => {
reject()
})
})
}
Array.prototype.sum = function() { /** ... */ }
const arr = [1, 2, 3]
// console.log в этом цикле выведет в консоль: 0, 1, 2, sum
// Т.е. «sum» всегда будет попадать в for..in-перечисления любых массивов в коде
for (let i in arr) {
console.log(i)
}
Object.defineProperty(Array.prototype, 'sum', {
enumerable: false,
value: function() {
let sum = 0
for (let i = 0; i < this.length; i++) {
if (typeof this[i] !== 'number' && !(this[i] instanceof Number)) {
throw new TypeError('Нечисловой массив')
}
sum += this[i]
}
return sum
}
})
position:absolute задаётся относительно ТОЛЬКО парент компонента
// Соединение
const socket = new WebSocket('ws://localhost:8888')
// Очередь сообщений
let queue = []
// Отправляет сообщение
function sendMessage(message) {
// Проверка, установлено ли соединение
if (socket.readyState !== WebSocket.OPEN) {
// Ежели нет, добавляем сообщение в очередь
queue.push(message)
return
}
// Отправляет сообщение, если есть соединение
socket.send(message)
}
// Обработка события открытия соединения
socket.addEventListener('open', () => {
// При открытии соединение тут же отправляем накопленные сообщения
queue.forEach(message => {
sendMessage(message)
})
// Очищаем очередь
queue = []
})