前言:在提到异步编程大家首先想到的就是ES6的新语法Promise,但Promise本身是同步还是异步?
同步编程?异步编程?
在判断Promise是同步还是异步之前,我们需要了解什么是同步?什么又是异步
浅析举例:
背景:肚子饿了,想吃北面的炸鸡,但又有些馋南面的鸡公煲。
方案一:先去北面买炸鸡,买完炸鸡再去南面买鸡公煲。
方案二:点外卖,两边同时做,谁先做好谁就先送过来
方案一这个炸鸡到手后再去买鸡公煲,有固定的顺序的流程就叫同步
方案二这个谁快谁先的流程就叫异步
Promise是同步还是异步?
Promise 是ES6引入的异步编程的新的解决方案,但Promise本身是同步的
举例:
let learn = new Promise((resolve, reject) => {
console.log('是同步我先出现');
});
console.log('是异步我先出现');
控制台打印一下看看:
分析:
“是异步我先出现”的解析速度比“是同步我先出现”的解析速度快
若为异步执行,控制台首先输出的应该是“是异步我先出现”
然而打印结果按顺序执行,因此可以判断为同步执行
总结:Promise本身是同步的