node中同步异步编程理解(promise)

同步API

说明:同步API执行顺序是:只有当前API执行完毕之后,才能继续执行下一个API,从上到下依次执行

node中同步异步编程理解(promise)

异步

说明:异步API:当前的API并不阻塞后边的代码的执行,而且所有带箭头函数的ApI都是函数

node中同步异步编程理解(promise)

图中的代码并不是我们想象中的按照顺序依次执行的1111,222,333,444,而是先执行111,444,然后执行222,然后333,为什么呢?

很简单:因为上边有两个异步API,不会依次执行而是遇到异步代码,先放到异步执行区,先把同步代码依次执行完毕之后然后执行异步代码。

同步API和异步API的区别(获取返回值)

说明:同步代码可以从返回值中拿到执行结果,但是异步代码是不可以获取执行结果。

node中同步异步编程理解(promise)
node中同步异步编程理解(promise)

异步代码不管执行几遍结果都是undefined。

那么异步函数怎么样才能拿到执行的结果呢,在这里我们使用毁掉函数(callback)

node中同步异步编程理解(promise)

异步函数小案例

依次读取a,b,c文件使用回调函数

1创建a,b,c文本文件

node中同步异步编程理解(promise)

这样就可以依次执行a,b,c文件了可是这样使用回调函数嵌套的超级超级多,这样代码少看不出来,要是代码上百上千行的话,非得给我们看头晕了。就像梦中梦一样永远醒不过来了。name我们使用promise解决这个回调地狱的问题。

使用promise依次执行a,b,c文件。

node中同步异步编程理解(promise)
node中同步异步编程理解(promise)
node中同步异步编程理解(promise)

这样依次执行就算有成百上千的代码我们也不会懵啦。。。。