SOURCE

/* function normal(){
    console.log("我是普通的同步任务,执行优先级最高");
}

function asynchronousTask(){
    setTimeout('console.log("我是宏任务,执行优先级最低")',0);  // 延时为0也没用
}

function run(){
    asynchronousTask(); // 即使写在前面也没用
    normal();
}

run(); */

/****************修改优先级:先做宏任务************************************** */


/* function normal(){
    console.log("我是普通的同步任务,执行优先级最高");
}

function asynchronousTask(callback){
    setTimeout('console.log("我是宏任务,执行优先级最低")',1000);  // 延时为0也没用
    callback();
}

function run(){
    asynchronousTask(normal); //
}

run(); */


/******************************************************** */
/* function fn(callback) {
  setTimeout(function () {
    var data = 'hello';
    callback(data);
  }, 1000);
}

fn(function (data) {
  console.log(data);
});

console.log("我是同步任务"); */


/********************异步任务阻塞*********************************** */
/* function asyncTask(){
    setTimeout('console.log("我是宏任务,执行优先级最低")',1000);  // 延时为0也没用
}
function takePromisePack(task){
    return new Promise(function (resolve, reject) {
        task(resolve);
  });
    // return new Promise(task);
}
 function normal(){
    console.log("我是普通的同步任务,执行优先级最高");
}

async function run(){
     await takePromisePack(asyncTask);
    // console.log(pack);
    console.log("111");

    // normal();
}

run(); */


/********************异步任务阻塞*********************************** */
/* function delay() {
  return new Promise(function (resolve, reject) {
    setTimeout(resolve, 1000);
  });
}

async function asyncPrint() {
  await delay();
  console.log('After one second.');
  await delay();
  console.log('After two seconds.');
  await delay();
  console.log('After three seconds.');
  await delay();
  console.log('After four seconds.');
}

asyncPrint(); */

/**************************************************** */
function timeout(ms) {
  return new Promise((resolve) => {
    console.log("im in promise");
    setTimeout('console.log("im in resolve")', ms);
    resolve();
    // setTimeout(resolve, ms);
  });
}

async function asyncPrint(value, ms) {
  await timeout(ms);
  console.log(value);
}

asyncPrint('hello world', 1000);
console 命令行工具 X clear

                    
>
console