Сообщение от Lemme
|
ясно, сори, но ты отбитый.
|
http://ru.wikipedia.org/wiki/Ad_hominem
Сообщение от Lemme
|
выполни следующий код с помощью async/await
|
async function pause(time){
return new Promise(function (resolve){
setTimeout(resolve, time)
})
}
async function log(time, message){
await pause(time)
console.log(message)
}
// запускаем параллельно две задачи
log('foo', 1000)
log('bar', 500)
То есть async await позволяет более гибко управлять потоком, там где мы хотим ждать, и там где мы хотим распарралелиться. Более того, мы с ребятами из ES6 думаем добавить оператор await* который принимает на вход массив промисов и ждет их всех.
Тогда бы можно было распарралелить две задачи, а потом выполнить код ПОСЛЕ завершения их всех, вот так:
await* [log('foo', 1000), log('bar', 500)]
alert('обе задачи выполнены')
Пока же для этого не придумали сахар, приходится делать так:
await Promise.all([log('foo', 1000), log('bar', 500)])
alert('обе задачи выполнены')
А теперь ТЫ мне сделай чтобы после выполнения:
setTimeout(console.log, 1000, 'foo')
setTimeout(console.log, 500, 'bar')
вывелось сообщение alert('обе задачи выполнены'). СЛАБО?? что, отбитый, ОБОСРАЛСЯ???? ну же, я жду код.
==============================
Сообщение от Erolast
|
Новичков вводит в ступор то, как одни участки кода входят в задержку, пока остальные продолжают работать как ни в чем не бывало.
|
Новичкам очень нравится что только ЭТА функция приостановилась, а остальные работают как надо и не тормозится ничего, а как надо будет, эта продолжится. Ровно так же работает и PHP, если ты напишешь sleep(500) твой скрипт ПРИОСТАНООВИТСЯ!! но СЕРВЕР ПРОДООЛЛЖИТ ПРИНИМАТЬ И ВЫПОЛНЯТЬ ЗАПРОСЫ от других пользователей. Все логично. Следовательно ты не прав а я прав.
К тому же теперь, чтобы все было так же просто как и в PHP, в node js вы можем писать как бы синхронный код.
Там где мы в php делали запрос к базе и наш скрипт приостанавливался (А ДРУГИЕ PHP СКРИПТЫ РАБОТАЛИ КАК Ни В ЧЕМ НИ бывАло), в node мы теперь можем сделать наконец ТО ЖЕ САМОЕ(!) просто дописав перед запросом к базе данных await.
Вы поняли свою ошибку? ЕСЛИ ЖЕ по данной причине сложен NodeJS то ПО ДАННОЙ ЖЕ ПРИЧИНЕ сложен и PHP!!! Если по данной причине НЕ сложен PHP, значит по этой же причине НЕ сложен и NodeJS. Any questions?