我是next(),done()等的新手,並且在串行執行之間傳播參數/可能是異步函數的鏈接。如何將參數傳遞給下一個函數done()或next()
我想強制的2個功能串行執行,以便他們能夠像或者叫做:
f1('#{arg1a}', '#{arg1b}').done(
f2('#{arg2a}', '#{arg2b}')
);
或類似的東西:
f1('#{arg1a}', '#{arg1b}', '#{arg2a}', '#{arg2b}').done(f2);
凡ARG值從被收集傳遞使用JSF查詢參數。
需要注意的是:
arg2a
和arg2b
是在我的情況完全無關的arg1a
和arg1b
,以及f2
調用不依賴於在f1
會發生什麼的任何方式,除了必須執行嚴格來說,即使f1
通常是異步的。我沒有定義即時匿名函數或內部完成()這裏(還),我想能夠調用一些已知的參數庫定義的函數。
在這個例子中,該功能會是這樣的:
function f1(arg1a, arg1b) {
//do something with arg1a, arg1b
return $.Deferred().resolve();
}
function f2(arg2a, arg2b) {
// Do something with arg2a and arg2b AFTER f1 has fully run.
}
或類似的東西:
function f1(arg1a, arg1b, arg2a, arg2b) {
//do something with arg1a, arg1b
// Somehow ensure f1 is finished then execute f2(arg2a, arg2b)
}
function f2(arg2a, arg2b) {
// Do something with arg2a and arg2b AFTER f1 has fully run.
}
只需使用回調鏈接爲我解決的情況沒有工作。另請參見:How link to and target/open a p:tab within an p:accordionPanel within a p:tab within a p:tabview
一個可以接受的答案必須允許我有一個預先定義的函數f2與預先定義的參數
'return $ .Deferred()。resolve()'沒有任何意義,因爲你在同一時間調用解析,在這種情況下你甚至不需要處理這個異步。你在'f1'裏面使用異步函數嗎? – slebetman
另外,你可以給你一個**同步**的例子,你正在嘗試做什麼。 「如果這是同步的,我想這麼做...」 – slebetman