С 2009 года, когда был задан этот вопрос, JavaScript значительно эволюционировал. Все остальные ответы сейчас устарели или слишком сложны. Вот текущая лучшая практика:
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async function demo() {
console.log('Taking a break...');
await sleep(2000);
console.log('Two seconds later, showing sleep in a loop...');
// Sleep in loop
for (let i = 0; i < 5; i++) {
if (i === 3)
await sleep(2000);
console.log(i);
}
}
demo();
await sleep()
. [+1129] Обратите внимание, что
await
может выполняться только в функциях с префиксом с ключевым словом async
или на верхнем уровне вашего сценария в некоторых средах ( например, консоль Chrome DevTools или Runkit). await
только приостанавливает текущую функцию async
Две новые функции JavaScript помогли написать эту функцию «сна»:
async/await
позволяет коду явно ожидать обещание выполнить (разрешить или отклонить). async
/ await
приземлился в V8 и был включен по умолчанию после Chrome 55 (выпущен в декабре 2016 года) Если по какой-то странной причине вы используете Node старше чем 7 (который достиг конца срока службы ) или нацелены на старые браузеры, async
/ await
все еще можно использовать через Babel (инструмент, который будет переносить JavaScript + новые функции в простой старый JavaScript), с плагином transform-async-to-generator
.
Я также только начал изучать структуру zend. Я также нахожу множество старых руководств, которые затрудняют обучение, html
Части Zend Framework немного изменились в выпуске 1.8, но все должно быть обратно совместимо, поэтому все примеры кода, написанные с использованием серии выпуска 1. *, должны работать с небольшими изменениями или без них. Основные отличия - это
Zend Loader (связанный с register_autoload), который теперь имеет несколько улучшений, связанных с производительностью, и некоторые небольшие отличия в его API (с предупреждением PHP, если вы используете старый способ). Я бы не стал слишком беспокоиться об этом как новичок - просто следуйте инструкциям или продолжайте использовать операторы include / require, пока вас не раздражает их постоянное добавление!
Приложение Zend, которое в основном позволяет вам создавать свой набор- вверх и код инициализации с меньшими усилиями. Опять же, ты не Для аутентификации см. Zend Auth , для электронной почты см. Zend Mail , для управления доступом см. Zend Acl , а для форм и проверки см. Zend Form , Zend Validate и Zend Filter . Компоненты формы и проверки объяснят пути и добавление ваших собственных валидаторов и элементов формы.
Другая важная область - это Zend Db , которая позволяет вам сохранять ваши данные в базе данных. Существует также Zend View , который представляет уровень представления в стеке MVC. На мой взгляд, это ключевые компоненты базового приложения ZF. Оттуда вы можете исследовать другие компоненты по мере необходимости.
Дон ' Не забывайте, что Zend Framework специально разработан для слабой связи и очень легко использовать компонент, отличный от другого проекта, для конкретной задачи. Иногда необходимо также написать свои собственные компоненты. Если есть компонент, который вы бы предпочли использовать вместо компонента Zend, тогда сделайте это.
Честно говоря, документация очень хороша, хотя для новичков в ней сложно ориентироваться. Когда вы разберетесь с основными компонентами, все станет намного яснее.
Также попробуйте выполнить это руководство . Это поможет объяснить многие основы.
документация очень хороша, хотя новичкам сложно ориентироваться. Когда вы разберетесь с основными компонентами, все станет намного яснее.Также попробуйте выполнить это руководство . Это поможет объяснить многие основы.
документация очень хороша, хотя новичкам сложно ориентироваться. Когда вы разберетесь с основными компонентами, все станет намного яснее.Также попробуйте выполнить это руководство . Это поможет объяснить многие основы.
На веб-сайте Front Range PHP Users Group есть несколько презентаций Zend Framework, которые могут быть использования.
Я так сочувствую тебе, Билли. Я новичок, и путаница между старым и новым способом почти невыносима. Также см. Здесь для тех, кто указывает на некоторые из основных различий:
Вся документация, особенно документация Zend абсолютно ужасна. Все это предполагает, что вы «знаете», куда поместить фрагменты, на которые они ссылаются, и как они работают вместе. Если бы я уже знал эти вещи, мне не понадобилась бы документация. Нет полных примеров приложений с аутентификацией и т. Д., Которые вы могли бы загрузить и изменить. Я серьезно сожалею о том, что потратил время на изучение этого фреймворка. Все примеры, которые я могу найти, явно относятся к более старым версиям. Я следил за одним для аутентификации на YouTube, который был разработан для 1.8 в буквальном смысле. Не работает в 1.9.x. Не могу заставить его работать, хоть убей.
Я рекомендую эти видеоуроки, созданные парнем по имени Алекс, он постоянно обновляет их и выпускает новые, все они имеют отношение к ZF 1.8 и 1.9.
У него даже есть подробный видеоурок, охватывающий ACL, формы входа и т. Д. (Благодаря ему мои первые шаги с Zend были проще!)
http://alex-tech-adventures.com/development/zend-framework.html? start = 15 - его сайт немного сбивает с толку, но стоит потратить время на то, чтобы разобраться в нем :)
Ура Роман
Zend Framework превратилась из относительно доступной и простой системы в более сложную. За последние пару лет он претерпел ряд быстрых изменений, в результате которых осталось много старой документации.
У нас есть проекты, которые застряли на версии 1.7.x, потому что разница между этой и последней версией слишком велика, что делает разработку и тестирование слишком дорогими.
Мне нравится Zend Framework, потому что в нем много глубины, но это определенно палка о двух концах для новичков.
Я бы определенно рекомендовал использовать опыт других пользователей и поискать несколько простых примеров фреймворка. ZF является легко адаптируемым, но вам нужно попробовать работать в простейшем случае, который возможен для ваших нужд.
Я думаю, что Мэтью Вейер о'Финни (введите «Phly, boy, phly») - один из наиболее доступных членов команды разработчиков, и у него на сайте есть масса примеров и идей.
Удачи!