Promise的异步调用

2024-06-22 18:44
文章标签 promise 异步 调用

本文主要是介绍Promise的异步调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Promise调用两个接口,第二个接口的入参为第一个接口的返回值

Promise的异步调用

  • 应用场景
  • 实例

应用场景

Promise调用两个接口,第二个接口的入参为第一个接口的返回值

实例

1.两个接口的调用,正常的写法

// 登录接口
function login(userInfo) {return new Promise(function(resolve, reject) {axios.get("/jeecg-boot/login/api/getLzUserDetailByToken", {	params: userInfo }).then((ress) => {if (ress.data.code == 200) {let userInfo = ress.data.result;window.sessionStorage.setItem("userInfo", JSON.stringify(userInfo));resolve(ress)}}).catch(() => {console.log("a")reject()})})
}
// 获取token
function getCpToken(userInfo) {return new Promise(function(resolve, reject) {axios.post("/jeecg-boot/login/api/getUserToken", userInfo).then((ress) => {if (ress.data.result) {let token = ress.data.result;window.sessionStorage.setItem("Token", token);window.sessionStorage.setItem("InfoCode", ress.data.code);resolve(ress)}}).catch(() => {console.log("b")reject()})})
}

2.实现异步调用
first().then( firstData =>{
return second({入参:})
})
.then(secondData =>{})


login({accessToken:userId})
.then((firstData) => {// 使用第一个接口返回的参数调用第二个接口return getCpToken(firstData.data.result);
})
.then((secondData) => {if (to.path == '/' || to.path == '/start') {next('/cpIndex')} else {next()}
})
.catch(() => {Toast.fail('登录失败');
})

这篇关于Promise的异步调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085101

相关文章

ScrollView 非手动调用的方法

1. /**  *  非人为的时候调用这个方法  *  *  @param scrollView <#scrollView description#>  */ - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {           } 2.判断控制器的view是否加载过 [willShowVC

JavaScript Promise技术

你可能已经知道Promises现在已经是JavaScript标准的一部分了。Chrome 32 beta版本已经实现了基本的Promise API。如今,Promise的概念在web开发中已经不是什么新鲜玩意了。我们中的大多数人已经在一些流行的JS库例如Q、when、RSVP.js中使用过了Promises。即使是jQuery中也有一个和Promises很类似叫做Deferred的东西。但是Ja

Rust:Future、async 异步代码机制示例与分析

0. 异步、并发、并行、进程、协程概念梳理 Rust 的异步机制不是多线程或多进程,而是基于协程(或称为轻量级线程、微线程)的模型,这些协程可以在单个线程内并发执行。这种模型允许在单个线程中通过非阻塞的方式处理多个任务,从而实现高效的并发。 关于“并发”和“并行”的区别,这是两个经常被提及但含义不同的概念: 并发(Concurrency):指的是同时处理多个任务的能力,这些任务可能在同一时

在WinCE的C#编程中,需要静态调用C++的动态库,需要添加using System.Runtime.InteropServices

using System.Runtime.InteropServices;         [DllImport("Win32DLL.dll", EntryPoint = "WriteREG_SZToRegTCHAR")]         private static extern bool WriteREG_SZToRegTCHAR(int iFlag, string regKeyP

玩转Web之easyui(二)-----easy ui 异步加载生成树节点(Tree),点击树生成tab(选项卡)

关于easy ui 异步加载生成树及点击树生成选项卡,这里直接给出代码,重点部分代码中均有注释 前台: $('#tree').tree({ url: '../servlet/School_Tree?id=-1', //向后台传送id,获取根节点lines:true,onBeforeExpand:function(node,param){ $('#tree').tree('options'

PHP中静态(static)调用非静态方法详解

1.PHP中可以静态调用非静态方法么? 今天我被问到PHP中可不可以使用 className::methodName() 的方法来调用一个没有声明static的方法。在我的印象中,我好像是见过这种用法,但又有些不确定。大家都知道,在手册或者教程里,方法被分为静态方法 和非静态方法,通常我们静态调用的方法,肯定是静态方法。 那如果我们调用了非静态方法会怎么样呢?首先做测试。 1

如何利用AopContext.currentProxy()解决事务管理中的方法调用问题

在Spring应用开发中,使用AOP(面向切面编程)来管理事务是非常常见的做法。然而,在某些场景下,尤其是在同一个类的方法内部,一个非事务方法直接调用另一个带有事务注解的方法时,可能会遇到事务不生效的问题。本文将深入探讨这一问题的原因,并介绍如何通过AopContext.currentProxy()方法来有效解决这一问题。 问题背景 想象一下,你有一个服务类UserService,其中包含两个方法

【Python】 异步编程

【Python】 异步编程 1. nest_asyncio基础定义2. nest_asyncio 举例实现基本用法 1. nest_asyncio基础定义 nest_asyncio.apply() 是 Python 编程中与异步编程相关的一个调用,它用于解决某些特定环境下的异步编程问题。下面是对这个调用的详细解释: nest_asyncio 模块:这是一个第三方库,它提供

AJAX:如何编写一个关于AJAX的Hello World?(ajax发送异步请求(四步操作))

用到的一个Servlet类: package cn.edu.web.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;impor

调用FileOutputStream中的三种write方式

package fileoutputstream;import java.io.FileOutputStream;import java.io.IOException;//import java.io.OutputStream;public class FileOutputStreamDemo2 {public static void main(String[] args) throws I