.then里面嵌套.then 会先将里面的执行完,再执行最外面的。
.then()里有.then()的情况
因为.then()返回的还是Promise实例。
会等里面的.then()执行完,在执行外面的。
对于我们来说,此时最好将其展开,会更好读。
```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
*/
```
return new promise
promise 嵌套
.then 嵌套使用逻辑
.then的链式调用
一、.then()里有.then()的情况:一个响应函数中又有链式调用
1、因为.then()返回的还是promise实例。
2、会等里面的.then()执行完,在执行外面的。
3、对于我们来说,此时最好将其展开,会更好读。
一、.then()里有.then()的情况:一个响应函数中又有链式调用
1、因为.then()返回的还是promise实例。
2、会等里面的.then()执行完,在执行外面的。
3、对于我们来说,此时最好将其展开,会更好读。
测试笔记功能