在javascript中使用async时,then函数中的函数参数的用途是什么?

在javascript中使用async时,then函数中的函数参数的用途是什么?,javascript,Javascript,我是JavaScript的完全初学者,并且试图理解async函数是如何工作的。我只是不理解msg参数的用途,以及打印返回值的日志记录方式。then方法返回一个promise对象。这需要两个论点 async function testAsync() { return 'Hello Adam!.'; } const any = testAsync(); console.log(any.then((msg) => {console.log(msg)})); 承诺成功后,将调用On

我是JavaScript的完全初学者,并且试图理解
async
函数是如何工作的。我只是不理解
msg
参数的用途,以及打印返回值的日志记录方式。

then方法返回一个promise对象。这需要两个论点

async function testAsync() {
  return 'Hello Adam!.';
}
 
const any = testAsync();
 
console.log(any.then((msg) => {console.log(msg)}));
  • 承诺成功后,将调用OnFullField它有一个参数,即被调用异步函数的返回值

  • 当承诺失败时,将调用onRejected。有一个论点是失败的原因

在您的示例中,调用成功,“msg”参数是函数的返回值,因此“Hello Adam”

  • 异步函数返回一个值
  • 承诺有决心和拒绝的模式
  • 您的
    msg
    是您为解析输出值指定的标签。使用
    意味着只有在解决承诺后(即,一旦知道解决值)才会调用它
  • 在您的示例中,“Hello Adam”值立即作为resolve值传递出去。另一个示例可能包括超时函数(用于模拟延迟响应):

    异步函数testAsync(){ 返回新承诺((解决)=>{ setTimeout(函数(){ 解决(“你好,亚当!”) }, 1000); }); } const any=testAsync(); console.log('测试') log(any.then((msg)=>{console.log(msg)}))
    then()
    是承诺成功解析时的承诺回调。promise返回的数据将绑定到您在then()签名中给出的别名。比如说,

    异步函数testAsync(){ 返回“你好,亚当!”; } log(testAsync().then((msg)=>{console.log(msg)}));
    在这里,当您调用
    testAsync
    函数时,它解析并返回字符串“Hello Adam!”,此字符串可以作为
    msg
    (它只是一个别名变量,您可以将其命名为任何名称)变量进行访问。

    在引擎盖下,异步函数包装在一个承诺中,因此您的异步函数将等于:

    p.then(onFulfilled, onRejected);
    
    p.then(function(value) {
       // fulfillment
      }, function(reason) {
      // rejection
    });
    

    您的参数来自返回的promises resolve回调。

    异步函数返回promise对象

    每个promise对象都有一个“then”函数。“then”方法接受函数作为其参数

    当异步函数中的代码完全执行时,将调用此函数


    此函数中的参数只是普通函数参数。根据异步函数返回的结果,此函数可以有多个参数。他们总是这样。@Jonaswillms同意什么是“alise”?拼写错误,这是别名
    function testAsync() {
      return new Promise((resolve, reject) => {
        resolve("Hello Adam!.");
      });
    }