Node.js中async和await如何高效运用,实现异步编程的优雅与简洁?
- 内容介绍
- 文章标签
- 相关推荐
本文共计641个文字,预计阅读时间需要3分钟。
目录 + 1. ES6常见语法的使用 + 2. Async、Await与Promise + 1. ES6常见语法的使用 + 1. let、const + let:是块级作用域 + if (true) { let a=123; } console.log(a); // a is not defined + const:定义常量 + const PI=3.1415926; PI
目录
- 1.Es6常见语法的使用
- 2.Async、Await和Promise
1.Es6常见语法的使用
1.let、const
let:是一个块作用域
if (true) { let a = 123; } console.log(a); // a is not defined
const:定义常量
const PI = 3.1415926; PI = 3.15 // Assignment to constant variable. console.log(PI)
var:全局变量
2.箭头函数
setTimeout(() => { console.log("我被执行了") }, 1000)
3.对象、属性和方法的简写
const name = "王五" var person = { // "name": name // name: name name } console.log(person.name)
var name = "候七" var app = { name, // run: function(){ // console.log(`${this.name}在跑步`) // }, run(){ console.log(`${name}在跑步`) } } app.run()
4.模板字符串
const name = "张三" const age = 27 console.log(`${name}的年龄是${age}`)
5.Promise
主要用来处理异步,比如下面的示例
function getData(){ // 异步 setTimeout(function(){ let name = "孙悟空"; return name }, 1000) } console.log(getData()) // undefined
如果要在外面获取异步对象执行的结果,可以使用callback回调方式
function getData(callback){ setTimeout(function(){ let name = "孙悟空"; callback(name); }, 1000) } getData(function(result){ console.log(result) // 孙悟空 })
Es6中新特性Promise方法
var p = new Promise(function(resolve, reject){ setTimeout(function(){ let name = "猪八戒"; resolve(name) }, 1000); }) p.then(function(data){ console.log(data); })
2.Async、Await和Promise
1.定义:
async是异步的简写,而await可以认为是async wait的简写,所以应该很好理解:async用于申明一个异步的fuction,而await用于等待一个异步方法执行完成。
2.简单示例
1.async方法通常应该返回一个Promise对象
async function test(){ // 通常异步方法中返回一个Promise对象,如果给定的是字符串,内部也会将其转换为Promise对象 return "hello nodejs"; } console.log(test()) // Promise {[[PromiseState]]: 'fulfilled', [[PromiseResult]]: 'hello nodejs', Symbol(async_id_symbol): 5, Symbol(trigger_async_id_symbol): 1}
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } console.log(test())
2.await方法必须在async方法中使用
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } // console.log(await test()) 错误写法 async function main(){ let result = await test(); // await必须用在async方法中 console.log(result) } main();
到此这篇关于Nodejs新特性async和await的使用的文章就介绍到这了,更多相关Nodejsasync和await使用内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!
本文共计641个文字,预计阅读时间需要3分钟。
目录 + 1. ES6常见语法的使用 + 2. Async、Await与Promise + 1. ES6常见语法的使用 + 1. let、const + let:是块级作用域 + if (true) { let a=123; } console.log(a); // a is not defined + const:定义常量 + const PI=3.1415926; PI
目录
- 1.Es6常见语法的使用
- 2.Async、Await和Promise
1.Es6常见语法的使用
1.let、const
let:是一个块作用域
if (true) { let a = 123; } console.log(a); // a is not defined
const:定义常量
const PI = 3.1415926; PI = 3.15 // Assignment to constant variable. console.log(PI)
var:全局变量
2.箭头函数
setTimeout(() => { console.log("我被执行了") }, 1000)
3.对象、属性和方法的简写
const name = "王五" var person = { // "name": name // name: name name } console.log(person.name)
var name = "候七" var app = { name, // run: function(){ // console.log(`${this.name}在跑步`) // }, run(){ console.log(`${name}在跑步`) } } app.run()
4.模板字符串
const name = "张三" const age = 27 console.log(`${name}的年龄是${age}`)
5.Promise
主要用来处理异步,比如下面的示例
function getData(){ // 异步 setTimeout(function(){ let name = "孙悟空"; return name }, 1000) } console.log(getData()) // undefined
如果要在外面获取异步对象执行的结果,可以使用callback回调方式
function getData(callback){ setTimeout(function(){ let name = "孙悟空"; callback(name); }, 1000) } getData(function(result){ console.log(result) // 孙悟空 })
Es6中新特性Promise方法
var p = new Promise(function(resolve, reject){ setTimeout(function(){ let name = "猪八戒"; resolve(name) }, 1000); }) p.then(function(data){ console.log(data); })
2.Async、Await和Promise
1.定义:
async是异步的简写,而await可以认为是async wait的简写,所以应该很好理解:async用于申明一个异步的fuction,而await用于等待一个异步方法执行完成。
2.简单示例
1.async方法通常应该返回一个Promise对象
async function test(){ // 通常异步方法中返回一个Promise对象,如果给定的是字符串,内部也会将其转换为Promise对象 return "hello nodejs"; } console.log(test()) // Promise {[[PromiseState]]: 'fulfilled', [[PromiseResult]]: 'hello nodejs', Symbol(async_id_symbol): 5, Symbol(trigger_async_id_symbol): 1}
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } console.log(test())
2.await方法必须在async方法中使用
async function test(){ return new Promise(function(resolve, reject){ resolve("hello nodejs") }) } // console.log(await test()) 错误写法 async function main(){ let result = await test(); // await必须用在async方法中 console.log(result) } main();
到此这篇关于Nodejs新特性async和await的使用的文章就介绍到这了,更多相关Nodejsasync和await使用内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

