博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
promise对象解决回调地狱
阅读量:6982 次
发布时间:2019-06-27

本文共 817 字,大约阅读时间需要 2 分钟。

先放一张图片感受一下回调地狱

看起来是真的很让人头痛的东西

而现在我这里使用promise对象来解决回调地狱

 

采用链式的 then,可以指定一组按照次序调用的回调函数。

这时,前一个 then 里的一个回调函数,返回的可能还是一个 Promise对象(即有异步操作),

这时后一个回调函数,就会等待该 Promise对象的状态发生变化,才会被调用。

由此实现异步操作按照次序执行。

var sayhello = function (name) {  return new Promise(function (resolve, reject) {    setTimeout(function () {      console.log(name);      resolve();  //在异步操作执行完后执行 resolve() 函数    }, 1000);  });}sayhello("first").then(function () {  return sayhello("second");  //仍然返回一个 Promise 对象}).then(function () {  return sayhello("third");}).then(function () {  console.log('end');}).catch(function (err) {  console.log(err);})//输出:first  second  third end

上面代码中,第一个 then 方法指定的回调函数,返回的是另一个Promise对象。

这时,第二个then方法指定的回调函数,就会等待这个新的Promise对象状态发生变化。

如果变为resolved,就继续执行第二个 then 里的回调函数

转载于:https://www.cnblogs.com/mlw1814011067/p/10750103.html

你可能感兴趣的文章
迈斯!啊呸~数学
查看>>
一则利用内核漏洞获取root权限的案例【转】
查看>>
was unable to refresh its cache! status = Cannot execute request on any known server
查看>>
QButtonGroup 的使用
查看>>
1968年12月9日,恩格尔巴特公开演示了世界上第一个鼠标盒子
查看>>
php中序列化与反序列化
查看>>
C语言双链表遍历,插入,删除
查看>>
关于git bush 中不能复制黏贴的问题
查看>>
java中的移位运算符
查看>>
Gitlab Issue Tracker and Wiki(一)
查看>>
js数组指定位置添加删除
查看>>
Word2010开发——操作文档
查看>>
JPA主键生成策略
查看>>
项目总结10:通过反射解决springboot环境下从redis取缓存进行转换时出现ClassCastException异常问题...
查看>>
[洛谷P1317]低洼地
查看>>
asp语言中if判断语句的求助
查看>>
AngularJS2 + ASP.NET MVC项目
查看>>
CSS a控制超链接文字样式
查看>>
设置IE兼容模式
查看>>
Selenium 2 & WebDriver &多线程 并发
查看>>