0
我有这样的代码:回调/承诺不正常工作
function makeDiv(callback){
var dfd = jQuery.Deferred();
$(function() {
$("#full_complete").append($(dose_credit).html()+ " " +$(storyboard).html() + " " +$(nar_name).html() + " " +$(nar_text).html());
full = $(this).closest('div').find("#full_complete");
dfd.resolve("hurray");
})
return dfd.promise();
}
function generateImg2(){
var doc = new jsPDF();
doc.fromHTML($(full).get(0), 15, 15, {
'width': 170,
});
doc.save('Test.pdf');
}
我使用它来调用这些函数:
$.when(makeDiv()).then(generateImg2());
这会产生一个空白的PDF,因为full
代表#full_complete
不完全创建。这就是为什么我希望使用回调,但它显然不工作,因为这两个功能基本上同时触发。
我在这里做错了什么?我猜这是我如何设定承诺,但不知道如何解决它。
有没有按” t似乎是异步进行的任何事情都需要一个承诺,添加到DOM的元素是同步的,至少如果你丢弃DOM就绪处理程序。 – adeneo
愚蠢的问题,但你有没有在'doc.fromHTML'中打断你的代码,看看'full'是否被加载? –
@The_Black_Smurf我只是通过查看'full'的'html()'看起来是什么样,并且它已经在'doc.fromHTML'之前完全加载了。 – jonmrich