1.如何改变pending的壮体

  • 抛出异常。pending变为rejected  // throw new Error('fail')  内部抛出异常也这样 reason为抛出的error
  • resolve() pending变为resolved
  • reject()pending变为rejected

2.一个promise指定多个成功/失败的回调 都会执行吗

全部都会执行

3.改变promise状态和指定回调函数的先后

一般异步情况

先指定的回调函数(内部保存回调函数),后改变状态(指定数据),然后执行回调函数

也可以先改变状态再指定回调

4.promise.then()返回的promise结果状态由什么决定

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

详细表达:

  • 抛出异常,新promise变为rejected,reason为抛出异常
  • 返回的是非promise值。新promise为resolved value为值
  • 返回的是新promise。新promise的结果就是结果

5ppromise如何串联多个操作任务

1.promise的then返回一个新的promise。

2.通过then的链式调用

6.promise的异常传透

1.可以在最后指定一个失败的回调

箭头函数作用

定义匿名函数

箭头作用 return

reason => {} 加上大括号 就是函数体的标记 就没有return

2.前面任何操作出现异常,都会传送到最后的失败处理

7.如何终端promise链

1.返回一个pending的状态promise

2.在使用then时候,中间中断

return new Promise(()=> {})

promise 核心 几个小问题的更多相关文章

  1. Promise核心原理解析

    作者: HerryLo 本文永久有效链接: https://github.com/AttemptWeb...... Promises对象被用于表示一个异步操作的最终完成 (或失败), 及其结果值.主要 ...

  2. es6中,promise使用过程的小总结

    参考资料传送门:戳一戳 1.是什么 Promise是异步编程的一种解决方案,有三种状态:pending(进行中).fulfilled(已成功)和rejected(已失败); 一般成功了状态用resol ...

  3. Promise核心实现

    核心 构造函数核心 维护状态变量,只能由pending变为resolve或者reject 维护一个存储结果的变量 维护一个回调数组,执行到then,如果我们传入的立即执行函数没有立即执行resolve ...

  4. promise核心6 自定义promise

    1.定义整体结构(不写实现) 定义一个自己的promise的库 lib(库的简写) 一个js文件.一个js模块(不能用es6  也不能commjs)(用es5模块语法 ) 匿名函数自调用.IIFE ( ...

  5. promise核心 为什么用promise

    为什么要用promise 1.使用纯回调函数 先指定回调函数,再启动异步任务 答 1.指定回调函数的方式更加灵活 可以在执行任务前,中,后 2.支持链式调用,解决回调地狱问题 什么是回调地狱:回调函数 ...

  6. Promise核心基础

    基础 Promise 抽象表达:是js中进行异步编程的新的解决方案 具体解释:1.从语法上来说是一个构造函数 2.从功能上来说promise对象用来封装一个异步操作并可以获取其结果 状态改变:0.ne ...

  7. Salesforce LWC学习(三十七) Promise解决progress-indicator的小问题

    本篇参考:https://developer.salesforce.com/docs/component-library/bundle/lightning-progress-indicator/exa ...

  8. 在微信小程序中使用redux

    本文主要讲述,在微信小程序中如何使用redux DEMO 需要解决的问题 如何在小程序中引入redux状态管理库,及它相关的插件? 微信小程序没有清晰的异步api,便于thunkMiddleware处 ...

  9. 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...

随机推荐

  1. D - Recommendations

    就是有n组,每组的数量是num,只能增加数字,增加的代价为t,求能使所有组的数量都不同的最小代价. #include<bits/stdc++.h> #define N 200005 #de ...

  2. 将OB86的故障信息保存在DB86中去

    出现DP站故障的时候,CPU会自动调用OB86 ,OB86 的20B 局部变量里面有丰富的故障信息,生成数据块DB86 在DB86 中生成5个双字元素的数组ARAY 在OB86中调用 "BL ...

  3. 图片索引 lire

    1:定义  LIRE( Lucene Image Retrieval)相似图像索引和搜索机制 2:资料来源     LIRE官网:http://www.semanticmetadata.net/lir ...

  4. Excel的查询函数vlookup和index使用

    需求 有一些省市的区县,有600多条数据,只有名称,没有编码.现在要根据名称去3000多条数据里面查询. 如图,拿出一部分数据来演示 vlookup 使用vlookup,由于vlookup只能查询数据 ...

  5. Java 解决Emoji表情过滤问题

    Emoji表情从三方数据中获取没有过滤,导致存入DB的时候报错. 原因: UTF-8编码有可能是两个.三个.四个字节.Emoji表情是4个字节,而Mysql的utf8编码最多3个字节,所以数据插不进去 ...

  6. POJ 3468 区间更新(求任意区间和)A Simple Problem with Integers

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 163977 ...

  7. Mysql 模糊查询 转义字符

    MySQL的转义字符“\” \0   一个ASCII  0  (NUL)字符.    \n    一个新行符.    \t    一个定位符.    \r    一个回车符.    \b    一个退 ...

  8. 指定盘符获取u盘PID、VID、序列号等信息

    最近学习scsi和DeviceIoControl,下载了微软WDK一些例子,以下代码精简自Windows-driver-samples-master\storage\tools\spti\src\sp ...

  9. 侯捷C++学习(二)

    #include <iostream>using namespace std;class complex{ public: complex (double r= 0, double i = ...

  10. Sass 安装到使用

    sass学习 Sass 可以通过以下三种方式使用:作为命令行工具:作为独立的 Ruby 模块 (Ruby module):或者作为 Rack-enabled 框架的插件(例如 Ruby on Rail ...