JavaScript 如何将异步函数转换为返回Promise的函数

JavaScript 如何将异步函数转换为返回Promise的函数

在本文中,我们将学习如何将异步函数转换为返回Promise的函数。

方法: 您首先需要声明一个简单的函数(可以是普通函数或箭头函数(推荐使用))。然后,您需要创建一个异步函数,然后将Promise作为该异步函数的输出返回。

我们需要创建一个函数(方法),可以是简单函数或箭头函数(我们使用箭头函数进行分析)。创建一个异步函数,然后在调用该函数时,应将输出返回为Promise形式。

让我们首先了解如何在JavaScript中声明一个简单的箭头函数,并在控制台中返回与该函数相关的结果。

示例:

Javascript

<script> 
 let name = () =>{ 
      console.log("GeeksforGeeks"); 
  } 
  name(); 
</script>

输出:

GeeksforGeeks

方法:

  • 我们将在函数语法中添加 async (),最终处理各种异步操作和事件。
  • 添加 async 关键字后,我们将存储结果。
  • 存储结果后,我们将调用函数,并查看返回的promise,其中包含了状态(已完成)和关联的值。

示例1:

Javascript

<script>  
 let name = async () => { 
    return "GeeksforGeeks"; 
  }; 
  console.log(name()); 
</script>

输出:

Promise {<fulfilled>: "GeeksforGeeks"}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: "GeeksforGeeks"

示例2: 您还可以添加 await 关键字,并将结果存储在某个变量中。当我们从API获取数据时,这很有帮助,以等待数据正确到达。

Javascript

<script> 
  let name = async () => { 
    let output = await ( "GeeksforGeeks"); 
      return output; 
  }; 
  console.log(name()); 
</script>

输出:

Promise {<pending>: "GeeksforGeeks"}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: "GeeksforGeeks"

示例3: 为了查看结果,我们将使用 then() 方法打印结果。

Javascript

<script>  
 let name = async () => { 
    return "GeeksforGeeks"; 
  }; 
  name().then((value) => { 
    console.log(value); 
  }); 
</script>

输出:

GeeksforGeeks

方法2:

  • 我们将使用 Promise 的 resolve() 状态。
  • 我们将存储我们的结果,并同时使用 async 关键字(加上函数语法)和 await(将结果存储到一个变量中)。

示例1:

JavaScript

<script> 
  let name = async() =>{ 
      let output = await Promise.resolve("GeeksforGeeks"); 
      return output; 
  } 
  console.log(name()); 
</script>

输出:

Promise {<pending>: "GeeksforGeeks"}
__proto__: Promise
[[PromiseState]]: "fulfilled"
[[PromiseResult]]: "GeeksforGeeks"

示例2: 如果您希望同时查看结果,那么根据先前的方法,您将使用 then() 方法,并借助此方法可以在控制台中查看结果。

Javascript

<script> 
let name = async() =>{ 
    let output = await Promise.resolve("GeeksforGeeks"); 
    return output; 
} 
name().then((result)=>{ 
    console.log(result); 
}); 
</script>

输出:

GeeksforGeeks 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程