运行另一个函数的excecution后javascript函数

运行另一个函数的excecution后javascript函数

问题描述:

我有功能类似于一些子页面,运行另一个函数的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

缺少的关键词是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

这样做

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