-
一、
new Promise(resolve => { setTimeout(() => { resolve('hello'); }, 2000); }) .then(value => { console.log(value); return new Promise(resolve => { // 自己用自己的回调 setTimeout(() => { resolve('world'); }, 2000) }) }) .then(value => { console.log(value + 'world'); })
查看全部 -
一、
new Promise(resolve => { setTimeout(() => { resolve('hello'); }, 2000); }).then(value => { console.log(value + 'world'); })
查看全部 -
一、promise
1、promise是一个代理对象,它和原先要进行的操作并无关系。
2、它通过引入一个回调,避免更多的回调。
二、promise的3个状态
1、pending(待定):初始状态
2、fulfilled(实现):操作成功
3、rejected(被否决):操作失败
三、promise状态发生改变,就会触发.then()里的响应函数处理后续步骤。
promise状态一经改变,不会再变。
四、
new Promise( // 执行器executor function(resolve, reject) { // 一段耗时很长的异步操作 resolve(); // 数据处理完成 reject(); // 数据处理出错 } ).then(function A() { // 成功,下一步 }, function B() { // 失败,做相应处理 })
查看全部 -
一、代码示例
function findLargest(dir, callback) { fs.readdir(dir, function(err, files) { if(err) return callback(err); }) }
1、findLargest和fs.readdir属于不同的栈,执行到fs.readdir时,findLargest先出栈。
(2)异步的问题
①因为异步回调函数会在新的栈中运行,所以这个栈中无法获取之前的栈的信息。之前的栈也无法捕获这个栈中的错误。所以异步回调开发中,无法用try...catch。
②无法判断异步文件什么时候完成,所以得在高级作用域链交给内层作用域,可能会被其他函数访问和修改,最终出现错误。
3、异步回调的4个问题
(1)嵌套层很深,难以维护。
(2)无法正常使用return 和throw。
(3)无法正常检索堆栈信息。
(4)多个对调之间难以建立联系。
查看全部 -
一、javascript
1、javascript为检查表单而生。
2、创造它的首要目标是操作dom。
3、javascript的操作大多是异步的。
二、浏览器中的javascript
1、异步操作以事件为主。
2、回调主要出现在ajax和file api
三、node.js
1、无阻塞高并发,是Node.js的招牌。
2、异步操作是其保障。
3、大量操作依赖回调函数。
查看全部 -
一、promis/'prɑmɪs/
1、promise用于异步计算。
2、可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果。
3、可以在对象之间传递和操作promise,帮助我们处理队列。
二、aSuncat:有空百度一下express 与 koa 的区别。
查看全部 -
promise实例一经创建,执行器立即执行
查看全部 -
promise状态改变
查看全部 -
promise的3个状态
查看全部 -
promise初始化
查看全部 -
最简单的实例
查看全部 -
测试笔记功能
查看全部 -
.then()
查看全部 -
.then()函数:
查看全部 -
Promise3个状态:
pending:待定
fulfilled:实现
rejected:被否决
查看全部
举报