Как вызвать пользовательскую функцию асинхронно с помощью javascript?
Я использую в своем приложении один угловой сторонний модуль. Этот модуль предоставляет некоторые методы обратного вызова, такие как успешный вход в систему, сбой и т. Д., И я выполняю свои собственные сценарии внутри метода обратного вызова.
Но проблема здесь в том, что я хочу выполнить свой собственный скрипт асинхронно, что означает, что обратный вызов не должен ждать, пока мой пользовательский скрипт выполнится. Теперь, если в сценарии есть какие-либо проблемы, их обратный вызов не завершается, и из-за этого влияет весь сценарий. Поэтому я хочу вызвать свой собственный метод асинхронно из события обратного вызова третьей стороны.
Я пробовал все возможные способы, используя приведенный ниже пример, но ничего не работает. Я тоже использовал обещания, но не работал,
EV.Event.on('login.success', function (res) { //third party's callback
try {
custCallbackLoginSuccess(res); //my custom method
} catch(Error) {
console.log("error"+Error);
}
});
async function custCallbackLoginSuccess(res) {
var success = test; //here test is undefied. so 'login.success' -should not wait untill this execution completes. It should complete without any error
}
1 ответ
поскольку это асинхронная функция, ваш try-catch не обнаружит никаких ошибок.
вы должны написать свой код следующим образом:
EV.Event.on('login.success', function (res) { //third party's callback
custCallbackLoginSuccess(res); //your custom method
});
async custCallbackLoginSuccess(res) {
try {
var success = test;
} catch(Error) {
console.log("error"+Error);
// don't throw any error here if you don't want to disturb the caller
}
}
если вам нужен результат
custCallbackLoginSuccess
в
login.success
, у вас нет другого выбора, кроме как дождаться его результата.