美文网首页
Promise 和 console 、throw

Promise 和 console 、throw

作者: 练习时长2年半的个人练习生 | 来源:发表于2020-05-17 16:00 被阅读0次
promise有什么用?

js代码执行都是单线程的,而在开发过程中需要书写异步代码比如:ajax调用、事件回调等。如果一直使用回调函数书写代码的话会带来回调地狱问题。让我们业务高度耦合,不利于复用和阅读。
promise的出现,就是解决了这个问题。将执行结果代码、和结果处理代码分离,通过链式调用,让代码复用性,和可读性得到了极大的提升。

  • promise 一共有三个状态
    1. pending - 进行中
    2. fulfilled - 成功
    3. rejected - 失败

  • promise 的then catch方法
    then 接受的是resolve返回的参数, catch接受的是reject返回的参数。也可以幻城 p.then(f1,f2)写法,f1 表示reslove的值,f2表示reject的返回值。

  • 大promise 的方法
    静态方法 race 、all
    race 只要第一个promise返回了状态,无论成功与失败,其他的promise,都不执行了。
    all 只要有一个promise 执行失败,那么,就只返回执行错的那个,否则返回执行正确的数组形式结果集

let p1 = new Promise(function(reslove,reject){
 setTimeout(() => {
  reslove('p1')
 }, 1000);
})
let p2 = new Promise(function(reslove,reject){
 setTimeout(() => {
  reslove('p2')
 }, 2000);
})

Promise.race([p1,p2]).then(function(res){
console.log(res)
})//p1
  let p1 = new Promise(function(reslove,reject){
   setTimeout(() => {
    reslove('p1')
   }, 1000);
})
let p2 = new Promise(function(reslove,reject){
   setTimeout(() => {
    reslove('p2')
   }, 2000);
})

let p3 = new Promise(function(reslove,reject){
   setTimeout(() => {
    reject('p3')
   }, 3000);
})
Promise.all([p1,p2,p3]).then(function(res){
  console.log(res)
}).catch(err=>console.log(err)) //p3
  • **Promise的链式调用
let p = new Promise(function(reslove,reject){
   setTimeout(() => {
    reslove('p')
   }, 1000);
})
p.then(res=>{
  console.log(res)
  return 'p1'
})
.then(res=>{
  console.log(res)
  return 'p2'
})
.then(res=>{
  console.log(res) 
})
// p p1 p2
console.throw
throw 会直接报错,后边的代码不执行。

console.error 报错后继续执行
console.warn 报警

相关文章

  • Promise 和 console 、throw

    promise有什么用? js代码执行都是单线程的,而在开发过程中需要书写异步代码比如:ajax调用、事件回调等。...

  • Promise

    实现如下函数 function sleep(timeout: number): Promise { throw n...

  • Promise

    promise是什么? 上手直接console.dir(Promise)出来看看promise到底是什么 咱们di...

  • promise和setTimeout执行顺序

    setTimeout(function(){console.log(1)},0);new Promise(func...

  • Promise

    Promise in js 回调函数真正的问题在于他剥夺了我们使用 return 和 throw 这些关键字的能力...

  • Javascript 中的神器——Promise

    Promise in js 回调函数真正的问题在于他剥夺了我们使用 return 和 throw 这些关键字的能力...

  • javascript中的Promise

    Promise in js 回调函数真正的问题在于他剥夺了我们使用 return 和 throw 这些关键字的能力...

  • js任务队列究极口诀

    同步大于异步大于回调 console.log new promise 的算同步 promise的then算异步 s...

  • Promise

    回调函数真正的问题在于他剥夺了我们使用 return 和 throw 这些关键字的能力。而 Promise 很好地...

  • js 精准控制程序流 async await promise t

    个人很喜欢把async await promise try catch throw联合使用,以达到精准控制程序流的...

网友评论

      本文标题:Promise 和 console 、throw

      本文链接:https://www.haomeiwen.com/subject/ekrsohtx.html