Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何重用函数中的参数?_Javascript_Function_Scope - Fatal编程技术网

Javascript 如何重用函数中的参数?

Javascript 如何重用函数中的参数?,javascript,function,scope,Javascript,Function,Scope,我有一个函数,在输入(type=file)加载后显示图像。我需要保存图像的源属性,以便进一步使用它。 代码如下: function readURL(input, callback) { if (input.files && input.files[0]) { let reader = new FileReader(); reader.onload = function (e) { regForm.img.setAttribute('src',

我有一个函数,在输入(type=file)加载后显示图像。我需要保存图像的源属性,以便进一步使用它。 代码如下:

 function readURL(input, callback) {
  if (input.files && input.files[0]) {
    let reader = new FileReader();

    reader.onload = function (e) {
      regForm.img.setAttribute('src', e.target.result); // I need to save this somehow, to use it later in a POST Request body.
     }
     reader.readAsDataURL(input.files[0]);
  }
}

你可以这样使用承诺:

function readURL(input) {
    return new Promise((resolve) => {
        if (input.files && input.files[0]) {
            let reader = new FileReader()
            reader.onload = function (e) {
                regForm.img.setAttribute('src', e.target.result)
                reolve(e.target.result)
            }
            reader.readAsDataURL(input.files[0])
        }
    })
}

每当您需要源代码
const src=wait readURL(您的文件)

时,您可以使用如下承诺:

function readURL(input) {
    return new Promise((resolve) => {
        if (input.files && input.files[0]) {
            let reader = new FileReader()
            reader.onload = function (e) {
                regForm.img.setAttribute('src', e.target.result)
                reolve(e.target.result)
            }
            reader.readAsDataURL(input.files[0])
        }
    })
}

每当您需要源代码
const src=await readURL(您的文件)

时,让readURL在onload回调中返回解析为e.target.result的承诺-该承诺可以根据您的需要随时使用。在何处使用?什么时候用它?@JaromandaX一段代码,太好了@昆汀,让我们在另一个POST请求函数中说。我想将该图像的
src
发送到服务器。为什么不再次调用
readURL
并传递另一个回调?(并实际使用回调)。或者提交文件本身,而不是将其转换为数据URL?让readURL在onload回调中返回解析为e.target.result的承诺-该承诺可以根据您的需要随时使用在哪里使用?什么时候用它?@JaromandaX一段代码,太好了@昆汀,让我们在另一个POST请求函数中说。我想将该图像的
src
发送到服务器。为什么不再次调用
readURL
并传递另一个回调?(并实际使用回调)。或者提交文件本身,而不是将其转换为数据URL?如果(input.files&&input.files[0])为false,您可能希望拒绝
raeader.onerror,或者
yo可能希望拒绝
if(input.files&&input.files[0])
为false,或者
raeader.onerror