如何从javascript函数中获取值
How to get value from javascript function?
这是我的代码。我想返回front_image
的值,但它返回的是空白字符串。
function get_front_image(callbackFunction){
var front_image="";
html2canvas($('#selector'), {
onrendered: function(canvas) {
front_image=canvas.toDataURL();
callbackFunction(front_image);
}
});
}
我正试图像这个一样获得front_image
的值
var f;
var a=get_front_image(function(value){
f= value;
});
alert(f);// it returns blank
我怎样才能从这个函数中得到这个值?请给我答案。提前感谢
在函数get_front_image
中,为变量front_image
分配一个空字符串,然后调用具有onrendered
函数的html2canvas
函数。这个函数被称为异步函数,所以当您返回front_image
变量时,onrendered
函数还没有被调用,这意味着front_image
仍然是一个空字符串。
大多数情况下,在执行异步操作时,您将使用回调函数。这里可能看起来像这样:
function get_front_image(callbackFunction){
var front_image="";
html2canvas($('#selector'), {
onrendered: function(canvas) {
front_image=canvas.toDataURL();
callbackFunction(front_image);
}
});
}
var f;
get_front_image(function(value){
f = value;
alert(f); //will return your value
});
alert(f); //Wont alert your value
明确执行的顺序:
- Var f声明为
var f;
- 调用
get_fron_image
,并调用html2canvas函数。这是异步,所以onrendered
函数将在它完成时被调用,我们不知道什么时候会发生这种情况 - 执行
alert(f); //wont alert your value
行。由于尚未调用onrendered
函数,因此f
还没有值 - 最后,执行
onrendered
函数,并调用callbackFunction
,其中alert(f);
按预期显示您的值。无论您想对变量f
执行什么操作,都必须在callbackFunction中执行才能工作
html2canvas onrender将异步运行,然后您的函数将返回未初始化的空var。
因此,我们必须对长时间运行的任务使用回调函数。您可以实现以下功能。
function get_front_image(callback){
html2canvas($('#selector'), {
onrendered: function(canvas) {
var url = canvas.toDataURL();
callback(url);
}
});
}
并调用如下函数。
get_front_image(function(link){
alert(link);
});
相关文章:
- Javascript:如何获取函数.apply()的键
- 如何在 JavaScript 中获取函数体文本
- 从函数内部获取函数的名称
- 从字符串的 JS 函数中获取函数参数
- 获取函数中按钮的名称
- 在其参数中获取函数本身
- 如何获取函数元素中的值
- 获取函数原型的源代码
- javascript:获取函数's变量's在另一个函数中的值
- 无法获取函数的ajax回调
- Javascript通过名称获取函数
- 如何获取函数参数值
- 使用Rhino从已评估的JS中获取函数名及其参数
- 获取函数jQuery设置的属性
- 获取函数的arity
- AJAX请求在jQuery中获取函数,变量问题
- 获取函数的表单隐藏变量
- 如何从外部JavaScript文件获取函数参数
- 不要在 Codeigniter 中获取函数参数
- 客户端 JavaScript 从服务器端文档集和获取函数接收过时的值