JavaScript 如何调用另一个Promise

JavaScript 如何调用另一个Promise

在本文中,我们将学习如何在JavaScript中调用另一个Promise。

问题陈述: 你需要首先使用JavaScript的基本语法来声明一个Promise,并进一步执行预先声明的Promise。你需要创建另一个Promise来在前一个Promise的执行中调用。

在以图形方式分析问题陈述之前,让我们先了解一下Promise的具体定义,以及如何在JavaScript中声明一个Promise。

Promise基本上是一个JavaScript对象,负责处理所有异步操作或活动,比如从API获取数据等。

Promise在一个函数(或回调函数)中接受两个参数,这两个参数用于结果执行:第一个参数是resolved,最终表示你的结果将被成功显示,另一个参数是rejected,表示你的数据在执行时将无法成功显示。

示例: 以下语法用于在JavaScript中声明和执行一个Promise。

JavaScript

let promise = new Promise((resolve, reject)=>{ 
    resolve('GeeksforGeeks'); 
}) 
.then((result)=>{ 
    console.log(result); 
})

输出:

GeeksforGeeks

作为一个示例,让我们理解上面所示的场景。在这里,我们首先需要使用Promise语法声明一个Promise,并且我们将使用then()方法来执行它,然后在then()方法内部,我们将使用与上面所示相同的Promise语法创建另一个Promise,然后我们将在新的Promise中调用我们第一个Promise的结果。 现在,在分析与我们的问题陈述相关的上述事实之后,让我们看看以下方法来更有效地理解和分析我们的问题陈述。

方法1: - 这基本上是一种原生和简单的方法,

首先我们可以通过使用上面所示的Promise语法来声明Promise。

然后我们可以声明我们的then()方法来处理创建的这个Promise的结果。

在then()方法之后,我们将使用相同的Promise语法声明另一个Promise。

然后,我们将在第二个Promise中调用我们第一个Promise的结果,并且为了更好地理解,我们将使用第一个Promise的结果以及第二个Promise的结果来看看这个过程是如何工作的。

示例:

javascript

let firstPromise = new Promise((resolve, reject) => { 
    resolve("Hello, "); 
}) 
    .then((result) => { 
        console.log(result); 
        return new Promise((resolve, reject) => { 
            resolve(result + "GeeksforGeeks!"); 
        }) 
            .then((result) => { 
                console.log(result); 
            }); 
    });

输出:

Hello
Hello GeeksforGeeks!

方法二:

  • 在这种方法中,我们将考虑setTimeout()方法,以更好地理解promise调用过程的工作原理。
  • 如在方法一中所示,首先声明一个新的promise,然后将结果包裹在setTimeout()方法中,并提供一个延迟时间1000毫秒(约等于1秒)。
  • 然后,在使用then()方法执行结果之后,声明另一个promise,并在第二个promise中首先打印第一个promise的结果。
  • 接着,在第一个promise的结果之后,也将第二个promise的结果包裹在setTimeout()方法中,并提供一个延迟时间2000毫秒(约等于2秒)。
  • 最后,使用then()方法在控制台输出第二个参数的结果。

示例:

JavaScript

let firstPromise = new Promise((resolve, reject) => { 
    setTimeout(() => { 
        resolve("Hello "); 
    }, 1000); 
}) 
    .then((result) => { 
        console.log(result); 
        return new Promise((resolve, reject) => { 
            setTimeout(() => { 
                resolve(result + "GeeksforGeeks!"); 
            }, 2000); 
        }) 
            .then((result) => { 
                console.log(result); 
            }); 
    });

输出:

// After 1 second......
Hello 

// After 2 seconds.....
Hello GeeksforGeeks!  

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程