四种情况对应的答案:
经典
```js "use strict"; /** * * @author xgqfrms * @license MIT * @copyright xgqfrms * @created 2020-10-01 * @modified * * @description * @difficulty Easy Medium Hard * @complexity O(n) * @augments * @example * @link * @solutions * * @best_solutions * */ const log = console.log; const promise = new Promise((resolve, reject) =>{ log(1); resolve(1); }); // then((json) => log(3, json), (err) => log(err)); promise .then((v) => { // not new Promise ⚠️ // return new Promise((ok, err) => { new Promise((ok, err) => { log(2); log(`v =`, v); // resolve callback, ok ok(`✅`); // reject callback, err err(`❌`) }).then((v) => { log(3); log(`v =`, v, `\n`); return v; }).then((v) => { log(4); log(`v =`, v, `\n`); return v; }); // 遇到 Promise 立即执行,Promise 后面紧跟着的第一个 then 也马上执行,后面的 then 按照 Promise 创建的先后顺序,依次执行 then! return v; }) .then((v) => { log(5); log(`v =`, v); return v; }) .then((v) => { log(6); log(`v =`, v); return v; }); /* 1 2 v = 1 3 v = ✅ 5 v = 1 4 v = ✅ 6 v = 1 */ ```
ignore then ???
Promise情况四
Promise情况三:doSomethingElse是一个promise实例
Promise情况二
Promise情况一
不同的Promise区别
Promise小测试
还是不太明白问题三, 为什么doSomething()和doSomethingElse()是同一时间执行,不应该等到doSomething()执行完毕再执行then()里面的函数吗
4个案例promise
1.one by one
2.else不会return给then
3.dosomelse和dosome同时执行
4.one by one
We have a problem with promises
问1: then 中 返回Promise
问2: then 中 没有返回Promise
问3: then 中 第一个参数是Promise
问4: then 中 第一个参数是一个函数
问题四答案
第一个then内传入的是一个执行的函数,实际上传入的是一个Promise实例
then内没有return值
常规promise.then
这点看不懂
知识点 要多复习
四种promise区别
区分4种Promise的区别
promise()
promise()
promise()
promise()
问题四的答案
问题三的答案
问题二的答案