Pull to refresh

Comments 6

10/11, последний вопрос подвёл — на внимательность ;)

Тоже самое :)
setTimeout(console.info('foo'), 0)

Только с 3-го раза увидел, что console.info выполняется вне setTimeout

Кстати, последний пример зависит от среды исполнения. В 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
UFO just landed and posted this here
Подколка в последнем вопросе расстроила.
Вот ещё добавлю:

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
Последний вопрос конечно с подвохом)
Sign up to leave a comment.

Articles