我试图掌握 jquery 中的延迟对象,但一直遇到麻烦。基本上,我有一系列要运行的函数,其中函数 1 的结果决定了第二个函数中的逻辑。
我不确定我是否必须在某处调用管道方法或只使用 then() 但无论哪种方式我都会失败。如果您查看第一个函数,则有一个名为 data 的对象,我想将其传递给第二个函数。
function run() {
var data1 = {};
var data2 = {};
var body = $('body');
$.when(first()).then(second()).done(constructData);
function first() {
var d = new $.Deferred();
var data = {} //arbitrary data set that i want to send to second
data.message = 'first message';
data.id = 1234;
body.append('First done');
//return data object? add it to the resolve method?
d.resolve();
}
function second(data) { //how do I get this data object?
var d = new $.Deferred();
body.append('Data from first:');
body.append('Second done');
d.resolve();
}
function constructData() {
}
}