Skip to content

[js] 第410天 js循环中调用异步的方法,如何确保执行结果的顺序是正确的? #2446

@haizhilin2013

Description

@haizhilin2013
Collaborator

第410天 js循环中调用异步的方法,如何确保执行结果的顺序是正确的?

3+1官网

我也要出题

Activity

tenadolanter

tenadolanter commented on Jun 1, 2020

@tenadolanter

An example:

let searchApi = function(arg){
    return new Promise((resolve,reject)=>{
        setTimeout(()=>{
            console.log(arg)
            resolve(arg)
        }, 20)
    })
};
let fields = [1,2,3,4];
let arr = new Array(fields.length);
await fields.forEach(async (vvv, index) => {
    const obj = await searchApi(vvv)
    arr[index] = obj
    const tempArr = JSON.parse(JSON.stringify(arr))
    if(tempArr.every(Boolean)){
        console.log(arr)
    }
})
zhenglingfei

zhenglingfei commented on Feb 20, 2021

@zhenglingfei

Promise.all?

xiaoqiangz

xiaoqiangz commented on May 6, 2023

@xiaoqiangz
  function getPromise(time) {
    return new Promise(function (resolve, reject) {
      setTimeout(()=>{
        resolve(time)
      }, time)
    })
  }
  let times = [2000, 5000, 3000, 6000]
  async function fn(arr) {
    for(const times of arr) {
      const res = await getPromise(times)
      console.log('fn------', res)
    }
  }
  fn(times)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    jsJavaScript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @zhenglingfei@haizhilin2013@xiaoqiangz@tenadolanter

        Issue actions

          [js] 第410天 js循环中调用异步的方法,如何确保执行结果的顺序是正确的? · Issue #2446 · haizlin/fe-interview