当前位置: 首页 > 知识库问答 >
问题:

所有函数调用问题

公孙志
2023-03-14

我正在使用Promise.all函数同时解析多个promise。请参阅下面的代码-

function check1() {
  console.log('check 1 invoked') 
  return new Promise((resolve, reject) => {
    setTimeout(()=> resolve('check1'), 4000);
  }) 
}

function check2() {
  console.log('check2 invoked')
  return new Promise((resolve, reject) => {
    setTimeout(()=> resolve('check2'), 4000);
  }) 
}

var arr = [check1(), check2()];

Promise.all(arr)
 .then((response) => console.log('response======>',response))
 .catch((error) => console.error('error',error))

上述方法的问题是,当我创建promise数组时,会调用相应的函数。我想以两个函数仅从promise.all函数调用的方式更改上述代码。

注意-需要在数组中存储函数。就像我现在做的那样。

共有2个答案

柳羽
2023-03-14

你也可以这样做-

 var check1 = new Promise((resolve, reject) => { 
      setTimeout(()=> resolve('check1'), 4000);
    }); 
    var check2 = new Promise((resolve, reject) => { 
       setTimeout(()=> resolve('check2'), 4000);
    });
    Promise.all([check1, check2]).then(values => { 
      console.log(values);
    }, reason => {
      console.log(reason)
    });
屠昌胤
2023-03-14

这应该可以做到,不要创建promise数组,而是创建函数数组,然后将函数映射到promise:

function check1() {
  console.log('check 1 invoked') 
  return new Promise((resolve, reject) => {
    setTimeout(()=> resolve('check1'), 4000);
  }) 
}

function check2() {
  console.log('check2 invoked')
  return new Promise((resolve, reject) => {
    setTimeout(()=> resolve('check2'), 4000);
  }) 
}
//do not store the promises, store the funciton that creates a promise
var arr = [check1, check2];

Promise.all(
  //map functions to promises
  arr.map(fn=>fn())
)
.then((response) => console.log('response======>',response))
.catch((error) => console.error('error',error))
 类似资料:
  • 问题内容: 现在我的问题是 在执行任何调用的函数之前,如何调用另一个函数?在上述情况下,我如何才能为每个其他函数调用自动调用“ test1”函数,这样我就可以获得输出, 目前我正在获得输出 我不能在每个函数定义中都调用“ test1”函数,因为可能有很多函数。我需要一种在调用类的任何函数之前自动调用函数的方法。 任何替代方式也可以。 问题答案: 最好的选择是魔术方法__call,请参见以下示例:

  • 问题内容: 我认为以下伪代码很好地总结了我的问题… 由(拥有)拥有(拥有适当的字词?)。那么对象类型将如何调用? 起初我在想,但这是针对继承的类的。然后我想通过一个接口,我走对了吗? 问题答案: 如果dostuff是常规方法,则需要将Bar传递给实例。 请注意,Bar可能有很多所有者,但没有任何现实的方法来确定他们是谁。 编辑:您可能正在寻找内部类:示例和注释。

  • 我很难理解如何只调用一次具有多个对象的函数(在for循环中)。 我试图写一个代码,其中对象的信息应该传递给另一个函数。 以下面的程序为例,函数被多次调用,而不是一次。 因为函数在循环中被调用了三次,所以一次只接受一个参数,而期望的输出应该是这样的: 那么,我如何一次调用函数,让它一次接受所有参数呢?感谢您的帮助。谢谢

  • 我试图将一个向量元组转换成一个向量元组(反之亦然)。调用函数时遇到问题。当我用一个参数调用它时,我得到一个错误: prog。cpp:在函数“int main()”中: prog。cpp:44:24:错误:调用“tuple_transpose(std::tuple)”时没有匹配函数 这是一个演示,其中包含错误:http://ideone.com/7AWiQQ#view_edit_box 我做错了什么

  • 问题内容: 我有一个关于如何工作的问题,尤其是在python中。我有一个打开串行连接(通过)的模块。我需要使该线程安全。使用,在同一个模块中工作时很容易使它线程安全,但是如果从不同的地方导入该模块,则会中断。 我当时在考虑使用,但是在查找有关羊群工作原理的足够信息时遇到了麻烦。我读到flock()将在文件关闭后将文件解锁。但是如果python崩溃,有没有一种情况可以使文件保持打开状态? 如果设置了

  • go调用函数出现expected ';', found '(',好奇怪的提示