Javascript-如何让用户等待结果
问题末尾的解决方案 我想展示一个确认模式,询问用户是否真的想做某件事,并根据结果继续执行代码 我正在阅读此文档中的“确认、警报和错误消息”部分来执行以下操作: 您可以找到的.js和.css文件,如果您想测试 但是,在代码的这一部分中,我必须在显示确认模式之前检查变量是否为TRUE:Javascript-如何让用户等待结果,javascript,jquery,Javascript,Jquery,问题末尾的解决方案 我想展示一个确认模式,询问用户是否真的想做某件事,并根据结果继续执行代码 我正在阅读此文档中的“确认、警报和错误消息”部分来执行以下操作: 您可以找到的.js和.css文件,如果您想测试 但是,在代码的这一部分中,我必须在显示确认模式之前检查变量是否为TRUE: if (verifyPermission === true){ FLUIGC.message.confirm({ message: "Would you like to
if (verifyPermission === true){
FLUIGC.message.confirm({
message: "Would you like to allow this?",
title: 'Without permission',
labelYes: 'Yes',
labelNo: 'No'
}, function (result, el, ev) {
if (!result) {
return; //Not allowed, so here must cancel the execution
}
}
});
//I want to the application stops here until the user confirm
}
//The rest of code is here below
如果verifyPermission
是真的,我希望它会被要求确认。如果用户回答“否”,则代码必须停止运行
但是,正在发生的是,它正在显示确认问题,但其余代码正在执行,而没有等待确认
我不能把剩下的代码放在函数(result,el,ev)
中,因为它有很多代码,我认为这会有代码复制。我不知道把剩下的代码放在函数中是否是一个好的做法
拜托,你能告诉我有没有正确的方法吗
解决方案-使用JAVASCRIPT异步函数
我在检查verifyPermission的函数前面放了“async”一词。
我留下了这样的代码:
async function myFunc() {
if (verifyPermission === true){
var result = await confirmPermission();
if(!result){
return;
}
}
// rest of code here
}
我创建了这个函数:
function confirmPermission(){
return new Promise(resolve => {
FLUIGC.message.confirm({
message: "Would you like to allow this?",
title: 'Without Permission',
labelYes: 'Yes',
labelNo: 'No'
}, function (result, el, ev) {
resolve(result);
});
});
}
将代码放入回调函数中
if (verifyPermission === true){
FLUIGC.message.confirm({
message: "Would you like to allow this?",
title: 'Without permission',
labelYes: 'Yes',
labelNo: 'No'
}, function (result, el, ev) {
if (!result) {
return; //Not allowed, so here must cancel the execution
else{
//your code here
}
}
}
});
}
把
async
放在函数前面,然后做一个承诺链之类的东西。这确保代码按顺序运行
资料来源:
编辑:实际上我对这个不太熟悉,因此最好阅读源代码并仔细查看。函数的可能副本是回调。。。因此,它应该处理这个案件,并属于那里。您可以通过进一步重构函数EAH来避免复制,将其余代码放在回调中,这就是它的用途。如果您担心重复代码,请将其余代码放在一个单独的函数中,并从回调内部调用该函数。这并不是对这个问题的真正回答,而“确保代码按顺序运行”基本上与
async
的作用相反。(最好不要发布你不熟悉的东西的答案…@DanielBeck Google异步定义:(指两个或多个对象或事件)不存在或不同时发生。
是!!!!这就是我真正想要的!我在这里实现了它,它以我想帮助的方式工作:)谢谢!有了这个,我现在可以解决很多这种情况