Promise链式回调的使用


/*Promise通常配合then方法来链式的使用,then方法里面第一个回调函数表示成功状态,也就是resolve,第二个是失败状态-reject,如果默认写一个参数的话,默认resolve*/



let checkLogin=()=> {
  return new Promise((resolve,reject)=>{
    let flag=document.cookie.indexOf("userId")!=-1?true:false;
    if(flag=true){
      resolve({
        status:0,
        result:true
      });
    }else{
      reject("error");
    }
  });
}
let getuseInfo=()=>{
  return new Promise((resolve,reject)=>{
    let useInfo={
      status:0,
      userId:101
    }
    resolve(useInfo);
  })
}

checkLogin().then((res)=>{
  console.log("Login Success");
  return getuseInfo();
},(error)=>{
  console.log(`error:${error}`);
}).then(res=>{
  console.log(`userId:${res.userId}`);
});

//Promise.all()的使用
Promise.all([checkLogin(),getuseInfo()]).then(([res1,res2])=>{
  console.log("Login Success");
  console.log(`userId:${res2.userId}`);
})

  

原文地址:https://www.cnblogs.com/wangxirui/p/9029343.html

时间: 2024-10-10 00:30:21

Promise链式回调的使用的相关文章

Node.js链式回调

由于异步的关系,代码的书写顺序可能和执行顺序并不一样,可能想先执行A再执行B,但由于异步可能B要先于A执行.例如在OC中使用AFnetworking请求数据然后刷新页面,由于网络请求是用block实现的异步方法,所以刷新的时候并没有数据,为了解决这个问题,一般会在请求响应结束在block中刷新页面(这就回出现循环引用的问题,不过node中不会出现). 上面是OC中异步执行中的链式回调,在node.js中也是使用这样的方法在回调中调用方法来实现链式回调. function logCar(car,c

promise链式

var getJSON = function(url) { var promise = new RSVP.Promise(function(resolve, reject){ var client = new XMLHttpRequest(); client.open("GET", url); client.onreadystatechange = handler; client.responseType = "json"; client.setRequestHea

promise链式调用

//不了解promise可以先去看看,了解后再来相信大家读能看的懂function Promise1(resolve, reject) { setTimeout(function() { resolve('1'); },5000);} function Promise2(resolve, reject) { setTimeout(function() { resolve('2'); },5000);} function Promise3(resolve) { setTimeout(functio

异步加载text资源,加载一次、执行一次、链式回调

function getText(time,callback) { setTimeout(function () { callback(time) },time) } var callbackMap={};//记录加载完成的回调 var resMap={};//记录url var loadbackMap={};//记录url 加载完成 var loadedMap={};//记录url 加载完成 var loadedI=-1;//记录url 加载完成位置 var orderI=0;//记录url

jQuery的链式调用原理,Promise的链式调用,this的问题

最近被问到这个问题,jq的链式调用原理,当时比较懵=.=,毕竟现在jq接触的机会变很少了. jq的链式调用 jq的链式调用其实就是比如我们在选择dom的时候, $('input[type="button"]') .eq(0).click(function() { alert('点击我!'); }).end().eq(1) .click(function() { $('input[type="button"]:eq(0)').trigger('click'); }).

运动回调-链式运动

1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>无标题文档</title> 6 <style> 7 #div1 {width:100px; height: 100px; background: red;

Promise.then链式调用

let a = new Promise((resolve,reject)=>{ resolve(1) }).then((r)=>{console.log(r)}).then(()=>{console.log(2)}).then(()=>{consol.log(3)}) // 1 // 2 // 3 let b = new Promise((resolve,reject)=>{resolve(1)}).then((r)=>{  return 3}).then((r)=&g

异步链式编程—promise沉思录

一.promise的组成 1.task:promise要完成的任务: 2.result:处理完的数据: 3.status:状态: 4.fulfill.reject(对应catch) 5.ResolveCallback ErrorCallback promise状态的解释函数 6.resolve: 对promise当前的状态作出解释,已完成的状态立即执行回掉,未完成的状态注册回掉函数: 7.then:前一promise的回掉注册,后一promise的前导: 二.promose状态机: fulfil

面向对象的链式调用

1. 对象的链式调用 function Chain(){ this.n=0;//属性不一定一开始的时候全部都要初始化 this.fn1=function(_obj){//this指向  new Chain()实例化的对象 alert(this.n++);//注意:alert(this.n++)与this.fn1中的this 不一定指向的对象是一样的 return this; } this.fn2=function(){//同上 alert(this.n++);//注意:alert(this.n+