Javascript 如何重用函数中的参数?
我有一个函数,在输入(type=file)加载后显示图像。我需要保存图像的源属性,以便进一步使用它。 代码如下: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',
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