当前位置:网站首页>Promise 2: Key Questions
Promise 2: Key Questions
2022-08-03 09:36:00 【Want to buy food】
1. 如何改变 promise 的状态?
2. 一个 promise 指定多个成功/失败回调函数, 都会调用吗?
let p = new Promise((resolve, reject) => {
// resolve('OK');
});
///指定回调 - 1
p.then(value => {
console.log(value);
});
//指定回调 - 2
p.then(value => {
alert(value);
});
3. 改变 promise 状态和指定回调函数谁先谁后?
(2) 如何先改状态再指定回调?
let p = new Promise((resolve, reject) => {
resolve('OK');
});
p.then(value => {
console.log(value);
},reason=>{
})
// 先执行回调,再改变状态
let p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('OK');
}, 1000);
});
p.then(value => {
console.log(value);
},reason=>{
})
4. promise.then()返回的新 promise 的结果状态由什么决定?
5. promise 如何串连多个操作任务?
let p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('OK');
}, 1000);
});
p.then(value => {
return new Promise((resolve, reject) => {
resolve("success");
});
}).then(value => {
console.log(value);
}).then(value => {
console.log(value);
})
// promise success
// undefined
//.thendoes returnpromise对象,But the value of this object is determined by the value returned by the callback,There is no return value declared here,所以返回undefined,那么下一个then获取到的值就是undefined,直接打印出来
6. promise 异常传透?
let p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('OK');
// reject('Err');
}, 1000);
});
p.then(value => {
// console.log(111);
throw '失败啦!';
}).then(value => {
console.log(222);
}).then(value => {
console.log(333);
}).catch(reason => {
console.warn(reason);
});
// 失败啦
7. 中断 promise 链?
let p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('OK');
}, 1000);
});
p.then(value => {
console.log(111);
//有且只有一个方式
return new Promise(() => {});
}).then(value => {
console.log(222);
}).then(value => {
console.log(333);
}).catch(reason => {
console.warn(reason);
});
// 111
边栏推荐
猜你喜欢
Redis cluster concept and construction
删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
013-二叉树
MySQL 主从切换步骤
MySQL的主从复制
When deleting a folder, the error "Error ox80070091: The directory is not empty" is reported. How to solve it?
机器学习(公式推导与代码实现)--sklearn机器学习库
Network LSTM both short-term and long-term memory
Machine learning (formula derivation and code implementation)--sklearn machine learning library
What exactly does a firmware engineer do?
随机推荐
xtrabackup
删除文件夹时,报错“错误ox80070091:目录不是空的”,该如何解决?
013-二叉树
机器学习(公式推导与代码实现)--sklearn机器学习库
固件工程师到底是干什么?
MySQL 中 is null 和 =null 的区别
pytorch installation error
AUC的两种计算方式
SQL试题
Scrapy + Selenium implements simulated login and obtains dynamic page loading data
兔起鹘落全端涵盖,Go lang1.18入门精炼教程,由白丁入鸿儒,全平台(Sublime 4)Go lang开发环境搭建EP00
命令行加载特效 【cli-spinner.js】 实用教程
分区分表(一)
【网络安全】Kail操作系统
MySql的初识感悟,以及sql语句中的DDL和DML和DQL的基本语法
二叉查找树的综合应用
Redis和Mysql数据同步的两种方案
Ultra-detailed Asp.net uses SSL two-way authentication, one article is enough
php中去重二维数组
函数指针数组