如何使用Promise.All()执行异步诺言?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Promise.All()执行异步诺言?相关的知识,希望对你有一定的参考价值。

我想问,您如何在所有应许中运行Ascyronus应许?当我运行Promise.all的函数时,all会并行运行所有函数(syncronus)

如果运行下面的代码,则结果为

// jon
// andrey
// tania
// JON
// ANDREY
// TANIA

这是我的代码

// First promise returns an array
const getUsers = () => 
  return new Promise((resolve, reject) => 
    return setTimeout(() => resolve([ id: 'jon' ,  id: 'andrey' ,  id: 'tania' ]), 600)
  )


// Second promise relies on the resulting array of first promise
const getIdFromUser = users => 
  return new Promise((resolve, reject) => 
    return setTimeout(() => resolve(users.id), 500)
  )


// Third promise relies on the result of the second promise
const capitalizeIds = id => 
  return new Promise((resolve, reject) => 
    return setTimeout(() => resolve(id.toUpperCase()), 200)
  )


const newPromise = async user => 
      const userId = await getIdFromUser(user)
      console.log(userId) //jon
      const capitalizedId = await capitalizeIds(userId)
      console.log(capitalizedId) //JON
      return
  

const runAsyncFunctions = async () => 
  const users = await getUsers()

  await  Promise.all(users.map(user => newPromise(user)))


runAsyncFunctions()

但是我想要下面的结果,如果promise全部运行异步,那么它将起作用。>

// jon
// JON
// andrey
// ANDREY
// tania
// TANIA

这是我的playgorund代码https://repl.it/repls/CalculatingAwfulComputerscience

我想问,您如何在所有应许中运行Ascyronus应许?当我运行Promise的函数时,如果您运行下面的代码,则所有并行运行所有函数(syncronus),然后...

答案

如果您只想在最后一个Promise完成后才初始化Promise,也就是说,请在serial

以上是关于如何使用Promise.All()执行异步诺言?的主要内容,如果未能解决你的问题,请参考以下文章

React Native 为啥我的代码在完成任务之前执行? Promise.all().then() 异步问题

js Promise 等待多个异步操作执行完再去做一些操作

Promise.all的用法及其细节

Promise.all的用法及其细节

Promise.all的用法及其细节

Promise.all的用法及其细节