Promise个人笔记(如有错误欢迎指正)

1. 首先Promise是一种异步编程的解决方案,它是一个容器,是一个对象,里面可以获取到异步操作(setTImeout,ajax等)的消息(setTimeout第三个参数的值, ajax成功返回的结果)。

2. Promise有个特点就是无法取消,一旦新建就会立即执行。

3. Promise如何将异步操作按同步方式写出来,个人觉得有两个方面

  • 首先手动声明的Promise,如果有多个(n个),且它们(n-1个)作为了resolve的参数,那么这些Promise都会立即执行,但是异步操作的信息会根据resolve中Promise的树结构关系产生一定的顺序,如果前面的Promise都是resolve了,那么最后一个Promise的resolve也会继承倒数第二个Promise的resolve返回的信息(比如data)
  • 第二种情况就是连续调用then方法,这种情况,每个then都会返回一个新的Promise对象,那么这一个Promise对应的then方法的回调会等待上一个Promise对象操作完成才会执行,而且上一个then的回调的返回值会变成下一个then的回调的实参
时间: 2024-11-03 20:49:18

Promise个人笔记(如有错误欢迎指正)的相关文章

linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)

errno 在unix系统中对大部分系统调用非正常返回时,通常返回值为-1,并设置全局变量errno(errno.h),如socket(), bind(), accept(), listen().erron存放一个正整数来保存上次出错的错误值. 对线程而言,每个线程都有专用的errno变量,不必考虑同步问题. strerror converts to English (Note: use strerror_r for thread safety) perror is simplified str

用gdb调试程序笔记: 以段错误(Segmental fault)为例

用gdb调试程序笔记: 以段错误(Segmental fault)为例[转] 1.背景介绍2.程序中常见的bug分类3.程序调试器(如gdb)有什么用4.段错误(Segmental fault)介绍5.gdb调试入门 一.背景介绍这个笔记主要介绍开源的程序调试器(gdb)的入门知识,目的是使unix/linux环境的编程新手能够快速学会使用gdb调试程序的方法,同时也是对我使用gdb的一个经验总结.本文假设你能使用简单的unix/linux命令并能用gcc(GNU C Compiler, GNU

PHP学习笔记7:错误和异常处理

读<PHP和MySQL Web开发>笔记合集: http://my.oschina.net/bluefly/blog/478580 1.异常处理概念 1)异常处理在 try 代码块被调用执行 try { //code goes here } 2)PHP中,异常必须手动抛出 throw new Exception('message',code); 这是一个语言结构,而不是一个函数. 可以在throw子句中传递任何其他对象. 3)在try代码块之后,必须至少给出一个catch代码块. catch

MySQL学习笔记10复制错误处理(一)表已存在的问题

(1)错误情况 在slave上已经有数据表test,而master上并没有这张表,现在在master上新建test表,则slave上的复制过程会出错. MySQL的log记录中相关信息如下: 2017-08-15T04:24:30.337730Z 11 [ERROR] Slave SQL for channel '': Error 'Table 'test' already exists' on query. Default database: 'test'. Query: 'create ta

学习笔记19_自定义错误页

在WebConfig中,可以配置当服务器发生哪些错误时,能跳转到那个页面: <customErrors mode ="On" defaultRedirect = " defaultErrorPage.aspx"> <error StatusCode ="403" redirect ="NoAccess.html"/>//网站发生403错误时跳转 <error StatusCode =...>

CCNA学习笔记之理解错误改正

1.直连路由并不是一定能通信,要求是在同一网段. 2.掩码长度不一样不一定不再同一网段,而要实际计算,比如192.168.1.1/24和192.168.1.1/25,依然算是在同一网段. 3.报文封装的IP地址是总路径的源头和目标,封装的mac地址则是这一路两头设备的mac地址. 4.路由器的不同端口不能再同一个网段. (虽学习的深入持续更新,欢迎一起学习网络的同学留言回复,共同努力完善笔记)

github使用笔记一(错误解决)

很少用github,但是有是有又不得不用,今天用github的时候,一直不能同步,并且在gitshell中出现这样的错误: 不但不能上传同步代码,这里也报错,提示not a git repository or any of the parent 经过查阅资料,解决方法是利用git init命令进行修复: 之后我在github for windows上注销了我的账号,并重新登录,发现可以成功同步了!

MySQL学习笔记11复制错误处理(二)删除不存在的行的问题

(1)问题情况 在master上删除某个数据表的某一行,而该行在slave上并不存在,则slave上的复制过程会出错. MySQL的log文件中发现如下错误信息: 2017-08-15T04:52:19.529509Z 13 [ERROR] Slave SQL for channel '': Could not execute Delete_rows event on table test.test; Can't find record in 'test', Error_code: 1032;

ES6中Promise学习笔记

参考资料: 廖雪峰 javascript教程-promise 阮一峰 ECMAScript 6 入门-Promise 对象 JavaScript Promise迷你书(中文版)