我正在测试一个任务中的三个异步/等待函数(functionA、functionB、functionC)的条件序列,但是当我执行它时,声明第一个functionA不应该通过,
1-我没有得到预期的功能a失败消息
2-当任何函数没有传递时,我应该如何处理错误来停止序列?
functionB: functionB passed
functionC: functionC passed
task ended
async function functionA(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionA passed');
} else {
reject(Error('functionA failed'));
}
}, duration);
});
}
async function functionB(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionB passed');
} else {
reject(Error('functionB failed'));
}
}, duration);
});
}
async function functionC(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionC passed');
} else {
reject(Error('functionC failed'));
}
}, duration);
});
}
async function executeAsyncTask(condition1, condition2, condition3) {
let resultFunctionA = true
if (condition1) {
resultFunctionA = await functionA(3000, true)
console.log('functionA: ', resultFunctionA)
}
let resultFunctionB = true
if (resultFunctionA && condition2) {
resultFunctionB = await functionB(3000, true)
console.log('functionB: ', resultFunctionB)
}
let resultFunctionC = true
if (resultFunctionB && condition3) {
resultFunctionC = await functionC(3000, true)
console.log('functionC: ', resultFunctionC)
}
console.log('task ended')
}
// running task with condition1, condition2, condition3 parameters
executeAsyncTask(false, true, true)
1-我没有得到预期的功能a失败消息
因为您的条件1
是false
而没有调用函数A
。
2-当任何函数没有传递时,我应该如何处理错误来停止序列?
async function functionA(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionA passed');
} else {
reject(Error('functionA failed'));
}
}, duration);
});
}
async function functionB(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionB passed');
} else {
reject(Error('functionB failed'));
}
}, duration);
});
}
async function functionC(duration, shouldPass) {
return new Promise((resolve, reject) => {
setTimeout(() => {
if (shouldPass) {
resolve('functionC passed');
} else {
reject(Error('functionC failed'));
}
}, duration);
});
}
async function executeAsyncTask(condition1, condition2, condition3) {
try {
let resultFunctionA = await functionA(3000, condition1)
console.log('functionA: ', resultFunctionA)
let resultFunctionB = await functionB(3000, condition2)
console.log('functionB: ', resultFunctionB)
let resultFunctionC = await functionC(3000, condition3)
console.log('functionC: ', resultFunctionC)
console.log('task ended')
} catch (err) {
console.error(err.message)
}
}
// running task with condition1, condition2, condition3 parameters
executeAsyncTask(false, true, true)
我正试图将图像上传到firebase存储,但调用该函数时,未执行wait以获取url。我错过了什么? 看看这个其他主题,我发现问题可能是“然后”,但我如何设置代码以等待url? 异步/等待/然后飞镖/颤振 谢谢
问题内容: 我对后端非常熟悉。但是我遇到了一种情况,我必须在前端使用它。 我正在获取对象的数组,并且在那些对象中我获取了位置。现在,我可以获取单个地名,但是我想在map函数中使用该名称来获取地名。因此,正如我们所知道的那样,我必须在那边使用。 这是代码 但是,当我在此处将map函数与async一起使用时,它不会返回任何内容。谁能帮我解决我的问题? 谢谢!!! 问题答案: 您应该始终将获取数据等关注
问题内容: 我的代码在javascript中看起来像这样: 在完成所有这些异步调用之后,我想计算所有数组的最小值。 我要如何等待所有人? 我现在唯一的想法是拥有一个名为done的布尔数组,并在第i个回调函数中将done [i]设置为true,然后说while(不是全部都完成了){} 编辑:我想一个可能但很丑陋的解决方案是在每个回调中编辑完了的数组,然后如果每个回调中都设置了所有其他完成,则调用一个
我正在努力找出以下语法的问题: 我一直得到错误说: 等待是一个保留字 ...但是在异步函数中不合法吗? 调度位来自report-thunk库。
我使用async/await ecma6标准,没有任何自定义库。 我现在不知道如何正确地捕捉和抛出错误。我有多个async/await函数,如果下面某个地方发生了严重错误,我希望将错误抛出到所有async函数的顶部,并停止函数的执行。 我试图抛出异常的异步/等待函数,并抓住它在目标函数,但我得到一个错误,在node.js: (节点:13964)未处理的PromisejectionWarning:未
我想使用异步并等待处理承诺。我想在下面的示例中使用这个方法: 在执行时,它给了我一个错误 错误: UnhandledPromiseRejectionWarning:未处理得承诺拒绝.这个错误可能是由于抛出一个没有catch块的异步函数内部,或者是由于拒绝了一个未用.catch()处理的承诺。(拒绝ID:3)