Promise 和 console 、throw

2020-05-17  本文已影响0人  练习时长2年半的个人练习生
promise有什么用?

js代码执行都是单线程的,而在开发过程中需要书写异步代码比如:ajax调用、事件回调等。如果一直使用回调函数书写代码的话会带来回调地狱问题。让我们业务高度耦合,不利于复用和阅读。
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
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 报警

上一篇 下一篇

猜你喜欢

热点阅读