Javascript 获取绑定到特定函数的返回值

Javascript 获取绑定到特定函数的返回值,javascript,Javascript,遇到一些特殊问题,我们将不胜感激 // image Editor function AddPic() { var ret=loadpic(); console.log("retval=" + ret); } 第2个文件导入到第1个 var retval; function loadpic() { //loads pictures in canvas frames and allow user to edit return function doneOK() {

遇到一些特殊问题,我们将不胜感激

// image Editor
function AddPic() {
    var ret=loadpic();
    console.log("retval=" + ret);
}
第2个文件导入到第1个

var retval;
function loadpic() {
  //loads pictures in canvas frames and allow user to edit
  return function doneOK() {
      return retval;
  };
}
function edit1() { retval=1;}
function edit2() { retval=2;}
function edit3() { retval=3;}
function edit4() { retval=4;}
function edit5() { retval=5;}
function edit6() { retval=6;}
//Depending on the user action different functions are called
//user can take any amount of time before clicking "OK" 
function onlclickOK() {doneOK();}

<html>
    <input type=button onclick=onlclickOK() value="ok">
</html>
var-retval;
函数loadpic(){
//在画布框架中加载图片并允许用户编辑
返回函数doneOK(){
返回返回;
};
}
函数edit1(){retval=1;}
函数edit2(){retval=2;}
函数edit3(){retval=3;}
函数edit4(){retval=4;}
函数edit5(){retval=5;}
函数edit6(){retval=6;}
//根据用户操作,调用不同的函数
//用户可以在单击“确定”之前花费任意时间
函数onlyclickOK(){doneOK();}
问题: 当用户单击ok按钮时 我们需要调用doneok()函数 它进一步将retval值返回给调用页

这就是我被打动的地方

//仍然有一些更好的方法。在这种情况下,这可能有助于调用函数以获取retval。
函数loadpic(){
//在画布框架中加载图片并允许用户编辑
返回doneOK()
}
函数doneOK(){
返回返回;

};当用户将来只单击按钮时,您不能期望返回值现在可用。因此,您需要一个异步解决方案。现在,你会使用承诺和
async
wait
关键字

您还需要在调用
loadPic
时开始收听OK按钮的单击,而不是在调用之前

下面是它的样子:

async function AddPic() {
    var ret = await loadpic();
    console.log("retval=" + ret);
}
导入到第一个的第二个文件将成为:

var onlclickOK = () => null; // null operation
var retval;
function loadpic() {
    //loads pictures in canvas frames and allow user to edit
    // ...
    // ...
    return new Promise(resolve => {
        onlclickOK = () => resolve(retval);
    });
}
function edit1() { retval=1;}
function edit2() { retval=2;}
function edit3() { retval=3;}
function edit4() { retval=4;}
function edit5() { retval=5;}
function edit6() { retval=6;}


问题是什么?如何将
onlclickOK
函数绑定到实际的点击事件?亲爱的joe“问题:更新的”onlclickOK将由用户操作触发,当用户点击ok按钮时:
AddPic()
Edit()…
将被调用吗?你能提供完整的代码吗?在需要调用doneok()并由某些用户操作(单击“确定”按钮)触发之前,有一些用户交互。因此,你的要求是,在画布框架中加载图片,每个图片上都有“编辑”按钮。一旦用户单击特定图像上的编辑按钮,那么应该在函数中获取该图像的retval。看来这将解决我的问题,给我一些时间,我只是在检查实时代码