1. Función de devolución de llamada sincrónica
Ejecutar inmediatamente, continuar ejecutándose después de que se haya ejecutado por completo y no se colocará en la cola de devolución de llamada
P.ej:
- Funciones de devolución de llamada relacionadas con el recorrido de la matriz
- Promesa de función de excutor (en uso
new Promise()
para crear un nuevo objeto cuando se pasa a los parámetros de la función de constructor Promesa)
//代码演示
let arr = [1,2,3];
arr.forEach(function (item) {
//遍历回调,该同步回调函数不会放入列队,一上来就要执行完
console.log(item);
})
console.log('forEach()之后');
Resultado de salida:
2. Función de devolución de llamada asincrónica
No se ejecutará de inmediato, se colocará en la cola de devolución de llamada para una ejecución futura
P.ej:
- Temporizador de devolución de llamada
- devolución de llamada ajax
- Promesa devolución de llamada de éxito o fracaso
//代码演示
setTimeout(function () {
//该异步回调函数,会放在队列中
console.log('setTimeout()正在执行');
},0);
console.log('setTimeout()之后');
//结果:先输出“setTimeout()之后”,最后输出“setTimeout()正在执行”