
四种情况对应的答案:





经典
```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()
问题四的答案
问题三的答案
问题二的答案