aysnc-await的用法

ops/2024/9/24 19:15:01/

aysnc-await是promise的一种特殊语法,它可以更简洁的得到promise

aysnc function

aysnc 放在函数前定义函数,它规定了这个函数的返回值一定为promise,

javascript">// 通过new新建一个promise(旧)
// let p = new Promise(function(resolve,reject){
//     //执行一个操作// });// 通过async得到一个promise(新)
async function sum(){return 1;// 等同于 retrun Promise.resolve(1);
}
console.log(sum());

在函数前面的 “async” 表达了一个简单的事情:《即这个函数总是 "返回" 一个 promise。》

await

await只能用在aysnc的函数内,它会中断函数的执行,等待promise的完成再继续向下执行函数

javascript">// await用法,写在promise前表示等待promise结果 
let result = await p; // p为一个promise,
// 此时result的值为promise的结果,而不是这个promise p

这里await会等待p执行结束再给result进行赋值,

javascript">async function f(){let p = new Promise((resolve,reject)=>{setTimeout(()=>resolve("pending,等待promise"),2000) ;})let result = await p; // 等待,直到 promise resolve (*)console.log(result);
}
f();

2秒后得到promise结果,而不是直接返回promise

await会等待promise的结果,在进行操作(这里是赋值),类似于p.then()

总结

        aysnc 关键字用在函数前,保证函数返回的结果得到一个promise;await用在aysnc内的promise前,它会等待promise的结果再向下执行用函数


http://www.ppmy.cn/ops/15380.html

相关文章

python基础--文件操作

目标 文件操作的作用文件的基本操作 打开读写关闭 文件备份文件和文件夹的操作 一. 文件操作的作用 思考:什么是文件? 思考:文件操作包含什么? 答:打开、关闭、读、写、复制… 思考:文件操作的的作用…

BFS解决FloodFill算法:(Leetcode:200. 岛屿数量)

题目链接:200. 岛屿数量 - 力扣(LeetCode) 本题由于没有给出开始搜索的位置,所以每一个位置都要进行一次广度优先搜索 另外为了不修改原数组数据,需要设置一个bool类型的二维数组vis来判断某个位置是否被搜索过 cl…

《A Discriminative Feature Learning Approach for Deep Face Recognition》阅读笔记

论文标题 《A Discriminative Feature Learning Approach for Deep Face Recognition》 一种用于深度人脸识别的判别性特征学习方法 作者 Yandong Wen、Kaipeng Zhang、Zhifeng Li 和 Yu Qiao 来自深圳市计算机视觉与专利重点实验室、中国科学院深圳先进技术研究院和香港中…

Semaphore、CountDownLatch、CyclicBarrier的区别

Semaphore、CountDownLatch和CyclicBarrier在Java中都是用于控制多线程执行的工具类,但它们各自有不同的使用场景和特性。 Semaphore(信号量)主要用于控制同时访问特定资源的线程数量。它允许一定数量的线程同时访问某个资源或资源池&#x…

Mysql主从复制

概述 主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多台从库进行复制,从库同时也可…

从 Android 恢复已删除文件的 3 种简单方法

如何从 Android 恢复已删除的文件?毫不犹豫,有些人可能会认为从 Google 备份恢复 Android 文件太容易了。但是,如果删除的文件未同步到您的帐户或未备份怎么办?您错误的恢复可能会永久删除您想要的数据。因此,我们发布…

从预训练损失的角度,理解语言模型的涌现能力

原文:Understanding Emergent Abilities of Language Models from the Loss Perspective 摘要 本文从预训练损失的角度重新审视语言模型的涌现能力,挑战了以往以模型大小或训练计算量为标准的观念。通过实验,作者发现预训练损失是预测下游任…

pycharm爬虫模块(scrapy)基础使用

今天学了个爬虫。在此记录 目录 一.通过scrapy在命令行创建爬虫项目 二.判断数据为静态还是动态 三.pycharm中的设置 三:爬虫主体 四.pipelines配置(保存数据的) 五.最终结果 一.通过scrapy在命令行创建爬虫项目 1.首先需要在cmd中进入到python文…