- function test () {
- return new Promise(resolve => {
- setTimeout(() => {
- console.log('test')
- resolve()
- }, 1000)
- })
- }
- function test1 () {
- return new Promise(resolve => {
- setTimeout(() => {
- console.log('test1')
- resolve()
- }, 1000)
- })
- }
- function test2 () {
- return new Promise(resolve => {
- setTimeout(() => {
- console.log('test2')
- resolve()
- }, 1000)
- })
- }
- async function call () {
- await test()
- await test1()
- await test2()
- }
- call ()
image.PNG
继发执行
- function call () {
- Promise.all([test(), test1(), test2()])
- }
- call()
image.PNG
- function getUserInfo (id) {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve({
- id: id,
- name: 'xxx',
- age: 'xxx'
- })
- }, 200)
- })
- }
- const users = [{id: 1}, {id: 2}, {id: 3}]
- let userInfos = []
- users.forEach(async user => {
- let info = await getUserInfo(user.id)
- userInfos.push(info)
- })
- console.log(userInfos) // []
- function getUserInfo (id) {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve({
- id: id,
- name: 'xxx',
- age: 'xxx'
- })
- }, 200)
- })
- }
- const users = [{id: 1}, {id: 2}, {id: 3}]
- let userInfos = []
- async function call() {
- for (user of users) {
- let info = await getUserInfo(user.id)
- userInfos.push(info)
- }
- console.log(userInfos)
- }
- call()
继发式的
- function getUserInfo (id) {
- return new Promise(resolve => {
- setTimeout(() => {
- resolve({
- id: id,
- name: 'xxx',
- age: 'xxx'
- })
- }, 200)
- })
- }
- const users = [{id: 1}, {id: 2}, {id: 3}]
- let userInfos = []
- const promises = users.map(user => getUserInfo(user.id))
- Promise.all(promises).then(res => {
- userInfos = res
- console.log(userInfos)
- })
若本号内容有做得不到位的地方 (比如: 涉及版权或其他问题), 请及时联系我们进行整改即可, 会在第一时间进行处理.
请点赞! 因为你们的赞同 / 鼓励是我写作的最大动力!
来源: http://www.jianshu.com/p/8284c991fc54