如何知道函数何时完成

时间:2016-03-16 07:05:08

标签: javascript jquery

有没有办法找出函数何时完成。我需要运行另一个函数,但只能在一个函数完成后运行。像这样......

$(document).ready(function(){});

除了功能而不是文档。

2 个答案:

答案 0 :(得分:9)

您可以创建promise,也可以使用callback

以下是承诺的示例(它有成功(解决),拒绝(出错)):

var promise = new Promise(function(resolve, reject) {
  // do a thing, possibly async, then…

  if (/* everything is OK */) {
    resolve("Stuff worked!");
  }
  else { // something went wrong
    reject(Error("It broke"));
  }
});

你这样使用它:

promise.then(function(result) {
  console.log(result); // "Stuff worked!"
}, function(err) {
  console.log(err); // Error: "It broke"
});

以下是回调

的示例
function giveMeAlert(callback) {
    alert('I am main function');
    callback();
}

giveMeAlert(function() {
    alert('I am a callback function.');
});

答案 1 :(得分:0)

你也可以像这样使用jQuery:

var myPromise = function() {
    var dfd = $.deferred();

    if (/* this i ok*/) {
        dfd.resolve( /* somthing to send with the result */ );
    } else {
        dfd.reject( /* somthing to send with the result */);
    }

    return dfd.promise();
}

myPromise().then(function succsses( /* the message*/ ) {

    },
    function fail(/* the message*/ ) {

    });