Комментарии 6
10/11, последний вопрос подвёл — на внимательность ;)
Кстати, последний пример зависит от среды исполнения. В Node.js будет выведено только 'foo'
:
setTimeout(console.info('foo'), 0)
console.info('bar');
(async () => {
const result = await Promise.resolve('baz')
console.info(result)
})()
foo
internal/validators.js:200
throw new ERR_INVALID_CALLBACK(callback);
^
TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined
НЛО прилетело и опубликовало эту надпись здесь
Подколка в последнем вопросе расстроила.
Вот ещё добавлю:
Вот ещё добавлю:
a = new Promise((resolve, reject) => {console.info('foo'); resolve(null);});
b = new Promise((resolve, reject) => {console.info('baz'); resolve(null);});
console.log('goo');
a.then(() => console.log('foo2'));
b.then(() => console.log('baz2'));
a = new Promise((resolve, reject) => {setTimeout(()=>console.log('foo'), 500);resolve('foo2');});
b = new Promise((resolve, reject) => {setTimeout(()=>console.log('baz'), 100);resolve('baz2');});
console.log('mor');
a.then((res) => console.log(res));
console.log('dor');
b.then((res) => console.log(res));
longJob = (text, dur) => new Promise((resolve, reject) => {
console.log(text);
setTimeout(() => {
console.log(text + '2');
resolve(text + '3');
}, dur)
});
console.log(await longJob('foo', 300) + await longJob('boo', 100));
longJob = (text, dur) => new Promise((resolve, reject) => {console.log(text); setTimeout(()=>{console.log(text+'2');resolve(text+'3');}, dur)});
j1 = longJob('foo', 300);
j2 = longJob('boo', 100);
console.log(await j1 + await j2);
longJob = (text, dur) => new Promise((resolve, reject) => {console.log(text); setTimeout(()=>{console.log(text+'2');resolve(text+'3');}, dur)});
['foo', 'bar', 'baz'].forEach(async (el, i) => await longJob(el, 400 - i*100));
console.log('goo');
10/11
Последний вопрос конечно с подвохом)
Последний вопрос конечно с подвохом)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Насколько хорошо вы знаете JavaScript?