我正在使用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函数调用的方式更改上述代码。
注意-需要在数组中存储函数。就像我现在做的那样。
你也可以这样做-
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)
});
这应该可以做到,不要创建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 '(',好奇怪的提示