promise简单实现分步操作

刚入前端不到一年,还记得去一家公司面试,当时还没有接触到ES6,更不要说在工作中运用了,对于promise也只是停留在瞄了一眼某文档。当时记得面试官是这样问的,js实现先干完事情1、然后事情2、最后事情3。当时想了一下就用es5事件地狱回调手写了一下这个问题,

123456789
function () {    do something1    function step2() {        dong something2        function step3 (){            do something3        }    }}

当时嘴欠提了一下还可以用promise,结果面试官要求手写一下,当时表示凉凉
现在使用es6后回过头来看,其实用promise实现并不难,反而更加简单

12345678910111213141516171819202122232425262728293031323334353637
let state = 1;function (resolve,reject){    console.log('第一步');    if(state == 1) {        resolve('第一步执行成功')    }else{        reject('第一步执行失败')    }}

function step2(resolve,reject){    console.log('第二步');    if(state == 1) {        resolve('第二步执行成功')    }else{        reject('第二步执行失败')    }}

function step3(resolve,reject){    console.log('第三步');    if(state == 1) {        resolve('第三步执行成功')    }else{        reject('第三步执行失败')    }}

new Promise(step1).then(function(res){    console.log(res)    return new Promise(step2)}).then(function(res) {    console.log(res)    return new Promise(step3)}).then(function(res) {    console.log(res)})

原文:大专栏  promise简单实现分步操作

原文地址:https://www.cnblogs.com/wangziqiang123/p/11618463.html

时间: 2024-07-31 14:26:16

promise简单实现分步操作的相关文章

T4 生成实体和简单的CRUD操作

<#@ template debug="false" hostspecific="false" language="C#" #> <#@ assembly name="System.Core.dll" #> <#@ assembly name="System.Data.dll" #> <#@ assembly name="System.Data.DataS

listview和简单的记事本操作

listview: 1 //每一列的列名用Columns集合添加 2 ListViewItem lv = new ListViewItem(); 3 lv.Text = s.Code.ToString();//每一行的第一列的项通过text添加 4 lv.SubItems.Add(s.Name);//每一行的其他列的项通过SubItems集合添加 5 lv.SubItems.Add(s.Sex); 6 lv.SubItems.Add(s.Birthday.ToString("yyyy年MM月dd

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

最简单直接碎片操作,动态增删改(2)

接续文章1的主activity,新增两个按钮一个是删除,一个是恢复然后添加事件,代码如下: @SuppressLint("Recycle") @Override public void onClick(View v) { // TODO Auto-generated method stub FragmentTransaction trx = getSupportFragmentManager() .beginTransaction(); switch (v.getId()) { cas

Hibernate系列(五):利用Hibernate完成简单的CRUD操作

这里利用Hibernate操作数据库完成简单的CRUD操作. 首先,我们需要先写一个javabean: package cn.itcast.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id

C#简单注册表操作实例

1.简介操作 //设置注册值 private void Button_Click(object sender, RoutedEventArgs e) { //路径及间隔符号要正确 //1.如果指定路径不存在,则创建 //2.如果指定键存在,则覆盖值 string path = "HKEY_CURRENT_USER\\myRegOne"; Registry.SetValue(path, "Expend", "hellow world!"); Mes

学会使用简单的MySQL操作

第十八章 学会使用简单的MySQL操作 在前面两个章节中已经介绍过MySQL的安装了.可是光会安装还不够.还须要会一些主要的相关操作.当然了,关于MySQL的内容也是非常多的.仅仅只是对于linux系统管理员来讲,一些主要的操作已经能够应付日常的管理工作了.至于更高深的那是DBA(专门管理数据库的技术人员)的事情了. [更改mysql数据库root的password] 首次进入数据库是不用password的 /usr/local/mysql/bin/mysql -u root Welcome t

【SSH三大框架】Hibernate基础第五篇:利用Hibernate完成简单的CRUD操作

这里利用Hibernate操作数据库完成简单的CRUD操作. 首先,我们需要先写一个javabean: package cn.itcast.domain; import java.util.Date; public class User { private int id; private String name; private Date birthday; public int getId() { return id; } public void setId(int id) { this.id

8天掌握EF的Code First开发系列之2 简单的CRUD操作

本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 创建控制台项目 根据.Net中的类来创建数据库 简单的CRUD操作 数据库模式更改介绍 本章小结 本人的实验环境是VS 2012,windows 7,MSSQL Server 2008 R2. 创建控制台项目 1. 新建控制台应用项目 2. 通过NuGet安装Entity Framework 6 根据.Net中的类来创建数据库 上面的步骤之后,我们就可以开始写代码了.在写代码之前,你要始终记得,每个类就是相应