在调试的目的,我写了一个新的代码,看看异步函数是如何工作的,所以我有下一个情况
我有3个函数log1(),log2(),main(),我希望:
当我调用main()时,它应该调用log1(),直到它完成所有语句,然后它应该调用log2()
function slowFunction(){
setTimeout(() => {
console.log('1')
}, 2000);
}
function log1() {
return new Promise(resolve =>{
resolve(slowFunction())
})
}
function log2() {
console.log('2');
}
async function main() {
var aux = await log1();
log2();
}
main();
所以我希望它能输出
1个
2.
但它确实有产出
2.
1个
我要注意的是,我不能编辑slowFunction,您应该将它视为需要未知时间执行的函数,因此我需要等待它完成,然后程序应该执行log2();
确保所有异步函数都用promise包装。
function slowFunction(){
return new Promise(resolve =>{
setTimeout(() => {
resolve("1")
}, 2000);
})
}
async function log1() {
let ret = await slowFunction()
console.log(ret)
}
function log2() {
console.log('2');
}
async function main() {
var aux = await log1();
log2();
}
main();
问题在于slowFunction
。似乎您希望在超时后解析slowFunction
,但它会立即返回当前写入的状态。您需要重写slowFunction
以返回Promise
,或者只需重写log1
:
function log1() {
return new Promise((resolve) => {
setTimeout(() => {
console.log('1');
resolve();
}, 2000);
});
}
我的布局如下: 我的职能 问题是我调用的函数在设置会话状态之前完成运行。在运行其余代码之前,我需要一些方法来等待状态被设置。有点像。那就好了。在类组件中,您可以使用第二个参数并将其传递给setState,但我使用的是函数组件。 我试着用一个promise: 这没用。。
问题内容: 我有充分的理由相信函数rename()和unlink()都是异步的,根据我的理解,这意味着当调用函数时,它们下面的代码在文件系统上完成其过程之前会继续执行。对于互联网应用程序,这是一个问题,我将在下面解释,因为以后的代码取决于这些更改,这些更改已经确定。那么,有没有办法使两者同步,以便代码读取器在遇到这些功能时冻结,直到其所有任务在文件系统上完全执行为止? 这是delete-image
我想使用谷歌云视觉API。我复制了代码,但出现以下错误:SyntaxError:await仅在异步函数中有效。 有没有办法解决这个问题? 非常感谢
问题内容: 我正在将C库移植到Go。AC函数(带有varargs)的定义如下: 因此,我创建了包装器C函数: 如果我在Go中定义函数是这样的: Go编译器抱怨: 那么Go支持功能(方法)重载了吗,还是这个错误意味着其他? 问题答案: 不,不是的。 请参阅Go语言常见问题解答,尤其是有关重载的部分。 如果方法调度也不需要进行类型匹配,则可以简化该方法。其他语言的经验告诉我们,使用具有相同名称但签名不
我有一个异步函数,它调用其中的另一个异步函数。此异步函数正在返回" 你能帮我解决这个问题吗? 以下是第一个异步函数: 如你所见,我调用updateAllProducts函数,并将该值存储到一个变量调用newAllProducts. updateAllProducts是另一个异步函数。 以下是updateAllProducts的代码: 此updateAllProducts函数正在调用另一个异步函数调
我目前正在努力创建EventhubTrig在Java函数应用程序,它侦听IotHub的默认endpoint。目前按照教程,我没有看到任何用于Java函数应用程序的异步实现的示例代码,而建议对C#函数应用程序使用async/wait。 我是否应该考虑/是否可以在Java中为Function Apps添加异步实现?是否有任何示例代码可以参考?我是否应该考虑在函数应用中添加并行编程/多线程逻辑? htt