2014-09-19 93 views
0

我有功能類似於一些子頁面,運行另一個函數的excecution後javascript函數

function fuct(){ 

.... 
somecode inside 
} 

我想要做的是功能funct成功執行其在主後執行調用的函數anotherfunction另一個函數html頁面。並且我不想在物體中調用anotherfunction

我可以這樣做,

on.succss本功能調用anotherfunction

+1

這聽起來像你想的承諾 - 退房https://www.promisejs.org/ – 2014-09-19 06:17:40

+0

只是當你調用第一個函數調用另一個函數,之後這一點。 – 2014-09-19 06:18:04

+0

你的第一個功能是什麼?如果它全部是同步的(例如沒有聯網),那麼你可以在第一次調用你的第一個函數後調用你的第二個函數:'a(); B();'。如果你的第一個函數中有異步操作,那麼你將不得不更加具體地瞭解它的內容。在這裏披露的信息太少,無法做出任何臆測。 – jfriend00 2014-09-19 06:20:29

回答

3

缺少的關鍵詞是callback的。

你可以有這樣的事情:

function funct(callback) { 
    // do something 
    callback(a, b, c, ..., n); 
} 

function anotherFunction(a, b, c, ..., n) { 
    // do something 
} 

funct(anotherFunction); 

JSFIDDLE


另一種方法是使用承諾:

function func() { 
    var deferred = new $.Deferred(); 

    // do something 
    deferred.resolve(position); 


    // return promise so that outside code cannot reject/resolve the deferred 
    return deferred.promise(); 
}; 

funct().then(anotherFunction); 
+1

你只是在猜測這裏。 OP沒有提到任何有關第一個功能的內容。 – jfriend00 2014-09-19 06:20:57

+0

@ jfriend00(S)如果需要,他會詢問更多信息。 :-) – 2014-09-19 06:23:14

+1

仍然是一個瘋狂的猜測。 OP的問題是完全不清楚的(他們沒有提及任何有關您嘗試解決的異步操作的問題),如果不能立即澄清,應該降低維護成本,然後關閉。 – jfriend00 2014-09-19 06:23:51

3

這樣做

function function1() 
{ 
    //if succeeds 
    return true; 
} 

那麼你需要

if (function1()) { 
    //call another function 
} 
+0

這是爲什麼?如果'function1()'不返回任何東西。這似乎是另一個瘋狂的猜測,而不是一般的答案。 – jfriend00 2014-09-19 06:21:29

+0

取決於編碼員如何編寫函數。 – 2014-09-19 06:22:24

+0

是的,這意味着它不是一個通用的答案。事實上,OP的問題根本不明確,所以你只能猜測或解釋所有可能的答案,因爲問題的不確定性。 – jfriend00 2014-09-19 06:23:13

相關問題