当前位置: 首页 > news >正文

电影网站免费建设网络营销策划书1500字

电影网站免费建设,网络营销策划书1500字,抖音代运营有什么内容,网站备案要拍照Ⅰ-如何改变 promise 的状态? (1) resolve(value): 如果当前是 pending 就会变为 resolved (2) reject(reason): 如果当前是 pending 就会变为 rejected (3) 抛出异常: 如果当前是 pending 就会变为 rejected Ⅱ-一个 promise 指定多个成功/失败回调函数, 都会调用吗? 当 pro…
Ⅰ-如何改变 promise 的状态?

(1) resolve(value): 如果当前是 pending 就会变为 resolved

(2) reject(reason): 如果当前是 pending 就会变为 rejected

(3) 抛出异常: 如果当前是 pending 就会变为 rejected

Ⅱ-一个 promise 指定多个成功/失败回调函数, 都会调用吗?

当 promise 改变为对应状态时都会调用,改变状态后,多个回调函数都会调用,并不会自动停止

let p = new Promise((resolve, reject) => {  resolve('OK');});///指定回调 - 1p.then(value => {  console.log(value); });//指定回调 - 2p.then(value => { alert(value);});

Ⅲ- 改变 promise 状态和指定回调函数谁先谁后?

(1) 都有可能, 正常情况下是先指定回调再改变状态, 但也可以先改状态再指定回调

​ 先指定回调再改变状态(异步):先指定回调--> 再改变状态 -->改变状态后才进入异步队列执行回调函数

​ 先改状态再指定回调(同步):改变状态 -->指定回调 并马上执行回调

(2) 如何先改状态再指定回调? -->注意:指定并不是执行

​ ① 在执行器中直接调用 resolve()/reject() -->即,不使用定时器等方法,执行器内直接同步操作

​ ② 延迟更长时间才调用 then() -->即,在.then()这个方法外再包一层例如延时器这种方法

(3) 什么时候才能得到数据?

​ ① 如果先指定的回调, 那当状态发生改变时, 回调函数就会调用, 得到数据

​ ② 如果先改变的状态, 那当指定回调时, 回调函数就会调用, 得到数据

let p = new Promise((resolve, reject) => {
//异步写法,这样写会先指定回调,再改变状态
setTimeout(() => {resolve('OK'); }, 1000);
//这是同步写法,这样写会先改变状态,再指定回调
resolve('OK'); 
});
p.then(value => {console.log(value);}, reason => {})

(4) 个人理解--结合源码

​ 源码中,promise的状态是通过一个默认为padding的变量进行判断,所以当你resolve/reject延时(异步导致当then加载时,状态还未修改)后,这时直接进行p.then()会发现,目前状态还是进行中,所以只是这样导致只有同步操作才能成功.

​ 所以promise将传入的回调函数拷贝到promise对象实例上,然后在resolve/reject的执行过程中再进行调用,达到异步的目的

​ 具体代码实现看下方自定义promise

Ⅳ-promise.then()返回的新 promise 的结果状态由什么决定?

(1) 简单表达: 由 then()指定的回调函数执行的结果决定

(2) 详细表达:

​ ① 如果抛出异常, 新 promise 变为 rejected, reason 为抛出的异常

​ ② 如果返回的是非 promise 的任意值, 新 promise 变为 resolved, value 为返回的值

​ ③ 如果返回的是另一个新 promise, 此 promise 的结果就会成为新 promise 的结果

let p = new Promise((resolve, reject) => {
resolve('ok');
});
//执行 then 方法
let result = p.then(value => {
console.log(value);
// 1. 抛出错误 ,变为 rejected
throw '出了问题';
// 2. 返回结果是非 Promise 类型的对象,新 promise 变为 resolved
return 521;
// 3. 返回结果是 Promise 对象,此 promise 的结果就会成为新 promise 的结果
return new Promise((resolve, reject) => {// resolve('success');reject('error');
});
}, reason => {
console.warn(reason);
});
Ⅴ- promise 如何串连多个操作任务?

(1) promise 的 then()返回一个新的 promise, 可以开成 then()的链式调用

(2) 通过 then 的链式调用串连多个同步/异步任务,这样就能用then()将多个同步或异步操作串联成一个同步队列

<script>
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);})
</script>
Ⅵ-promise 异常传透?
  • 当使用 promise 的 then 链式调用时, 可以在最后指定失败的回调
  • 前面任何操作出了异常, 都会传到最后失败的回调中处理
getJSON('./hong.json').then(function(posts) { throw new Error('抛出异常') }).then(res=>console.log(res),e=>console.log('被then的错误回调捕获',e) ).catch(function(error) {// 处理 getJSON 和 前一个回调函数运行时发生的错误console.log('错误捕获: ', error);});
//执行结果: 被then的错误回调捕获 Error: 抛出异常/******************** 利用异常穿透 ****************************************/
getJSON('./hong.json').then(function(posts) { throw new Error('抛出异常') }).then(res=>console.log(res) ) //此处差异,不指定 reject 回调,利用异常穿透传到最后.catch(function(error) {console.log('错误捕获: ', error);});
//执行结果:  错误捕获:  Error: 抛出异常

注:可以在每个then()的第二个回调函数中进行err处理,也可以利用异常穿透特性,到最后用catch去承接统一处理,两者一起用时,前者会生效(因为err已经将其处理,就不会再往下穿透)而走不到后面的catch

image-20210927105504988

Ⅶ- 中断 promise 链?

关键问题2中,可以得知,当promise状态改变时,他的链式调用都会生效,那如果我们有这个一个实际需求:我们有5个then(),但其中有条件判断,如当我符合或者不符合第三个then条件时,要直接中断链式调用,不再走下面的then,该如何?

(1) 当使用 promise 的 then 链式调用时, 在中间中断, 不再调用后面的回调函数

(2) 办法: 在回调函数中返回一个 pendding 状态的promise 对象

<script>
let p = new Promise((resolve, reject) => {setTimeout(() => { resolve('OK');}, 1000);});
p.then(value => {return new Promise(() => {});})//有且只有这一个方式
.then(value => { console.log(222);})
.then(value => { console.log(333);})
.catch(reason => {console.warn(reason);});
</script>

http://www.mmbaike.com/news/101002.html

相关文章:

  • 启东市住房和城乡建设局网站桔子seo查询
  • 网页生成app在线新媒体seo指的是什么
  • 移动端网站如何做导出功能免费做网站软件
  • 自己做网站怎么买域名谷歌商店官网下载
  • 如何做视频网站推广员备案域名购买
  • 上海做网站要多少钱关键词搜索方法
  • 什么网站可以做钟点工淘宝指数转换
  • 企业网站开发用什么好平台连接
  • 郉台网站建设三亚百度推广公司电话
  • 网站做优化的成本天气预报最新天气预报
  • 专做商铺中介网站公司品牌宣传
  • 网站设计东莞上海做网站优化
  • 青岛开发区网站建设服务市场调研报告3000字范文
  • 网站建设收费明细外链吧官网
  • 涡阳哪里有做网站的seo搜索优化费用
  • 先进的网站设计公司b2b电商平台有哪些
  • 旅游网站建设的目的及功能定位seo入口
  • wordpress设置背景图案沧州seo包年优化软件排名
  • 苏州哪家网站公司做的好的免费网络推广的方法
  • 专门学设计的网站semir
  • 嘉兴企业网站排名优化百度客户管理系统登录
  • 设计制作公司广州网站营销seo费用
  • 以你的心诠释我的爱网页设计素材seo网站关键词优化
  • 农业信息网站建设方案网站关键词搜索排名优化
  • 全网高清素材下载镇江网站seo
  • 网站正在建设中提示页成都网站建设制作公司
  • 网站建设补贴是经信局的政策吗搜索引擎网站提交入口
  • 洛阳网站建设汉狮怎么样免费的舆情网站app
  • 佛山网站建设与设计市场营销策划方案3000字
  • 做网站建设哪家便宜产品推广方案范文