我有问题。几乎在同一时间从一个事件调用两个函数。 Function1正在做一些异步员工:
function1 (callback_Data){
//some other callbacks here
}
function2 (){
}
我希望function2等到function1中的所有回调完成后再开始。
答案 0 :(得分:0)
在function1的最后调用function2()。如果有任何异步回调,请小心。在这种情况下,在最后一次回调结束时调用function2。
function1 (callback_Data) {
// some logic here
// async function
asyncFunction(param1, param2, function() {
// the logic that is executed, when asyncFunction is completed
function2();
});
}
function2() {
// some other logic
}
答案 1 :(得分:0)
承诺国
承诺可以是以下三种状态之一:
等待承诺的结果尚未确定,因为将产生其结果的异步操作尚未完成。 已实现 - 异步操作已完成,并且promise具有值。 拒绝 - 异步操作失败,永远不会履行承诺。在被拒绝的状态下,承诺有一个原因可以指示操作失败的原因。
var greetingPromise = sayHello();
greetingPromise.then(function (greeting) {
console.log(greeting); // 'hello world’
});
这个块可以帮助你执行第一个函数1然后它将进入函数2。
答案 2 :(得分:0)
如果在function1
中异步执行了某些操作,那么在它们完成之前,它们将不会被阻止,因为它们被安排执行。
你可以发起一个承诺,并在then
中传递function2,当所有的执行都从function1
完成后,你就可以解决这个承诺。
答案 3 :(得分:-1)
这是一个简单的方法,你可以在第一个功能完成执行后调用第二个功能 像这样
function1 (callback_Data){
//some other callbacks here
function2 ();//here is the function call
}
function2 (){
//your code
}
答案 4 :(得分:-1)
您可以使用承诺进行异步操作
'use strict';
// creating object promise
let promise = new Promise((resolve, reject) => {
setTimeout(() => {
// this will make promise fulfilled with result "result"
resolve("result");
// this will make promise rejected with result "error"
// reject("error");
}, 1000);
});
// promise.then adds functions on success and failure
promise
.then(
result => {
// first function - will be executed on resolve
alert("Fulfilled: " + result); // result - argument resolve
},
error => {
// second function will be executed on reject
alert("Rejected: " + error); // error - argument reject
}
);