Promis.then()

1     function cook() {
 2       console.log('开始做饭。');
 3       var p = new Promise(function (resolve, reject) {
 4         setTimeout(function () {
 5           console.log('做饭完毕!');
 6           resolve('鸡蛋炒饭');
 7         }, 1000);
 8       });
 9       return p;
10     }
11
12     function eat(data) {
13       console.log('开始吃饭:' + data);
14       var p = new Promise(function (resolve, reject) {
15         setTimeout(function () {
16           console.log('吃饭完毕!');
17           resolve('一块碗和一双筷子');
18         }, 2000);
19       });
20       return p;
21     }
22     function wash(data) {
23       console.log('开始洗碗:' + data);
24       var p = new Promise(function (resolve, reject) {
25         setTimeout(function () {
26           console.log('洗碗完毕!');
27           resolve('干净的碗筷');
28         }, 2000);
29       });
30       return p;
31     }
32
33     cook()
34       .then(eat)
35       .then(wash)
36       .then(function (data) {
37         console.log(data);
38       });

输出:

备注:resolve只能传入一个参数,传入的其它参数,读取到的值为"undefined"。

(0)

相关推荐

  • Event Loop

    文章 console.log('1'); setTimeout(function() { console.log('2'); process.nextTick(function() { console ...

  • 异步解决方案----Promise与Await

    目录 前言 一.Promise的原理与基本语法 1.Promise的原理 2.Promise的基本语法 二.Promise多个串联操作 三.Promise常用方法 四.Async/Await简介与用法 ...

  • 10.jQuery工具方法$.ajax(),回调地狱以及解决方法

    # 回调地狱 - 因为$.ajax()嵌套过多,导致回调地狱,形成三角形代码 ```js $.ajax({     url: 'https://www.baidu.com',//随便写的地址,不能使用 ...

  • 异步编程之Promise

    一.Promise 1. .then 和.catch · resolved 状态的Promise 会回调后面的第一个.then · rejected 状态的Promise 会回调后面的第一个.catc ...

  • Promise从入门到放弃

    Promise的理解与使用 Promise的理解 Promise是什么 抽象的表达就是:Promise 是异步编程的一种解决方案. 而具体点的表达就是: 在语法上:Promise 是一个构造函数: 在 ...