Я использую функцию, предоставленную сторонней библиотекой. Эта функция выполняет функцию обратного вызова в качестве параметра, но я хотел бы дождаться, пока этот обратный вызов будет вызван до продолжения. Есть ли стандартный/общепринятый способ сделать это?wait async javascript function to return
ответ
Я не уверен, что это возможное решение для вас, но вы можете достичь желаемого результата, разбив код на 2 функции. Предположим, что это то, что вы собираетесь делать:
В основном это ваша оригинальная функция:
function origFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(oldCallBackFunc);
Wait();
codeAfterCallBackFunc();
}
Вы можете изменить поток кода с чем-то вроде:
function newFunc() {
codeBeforeThirdPartyFunc();
ThirdPartyFunc(newCallBackFunc);
}
function newCallBackFunc() {
oldCallBackFunc();
codeAfterCallBackFunc();
}
Это позволит устранить ожидание петля. И насколько я знаю, занятое ожидание не работает в IE (потому что Бог знает только).
Я не знаю, будет ли решение Sharad работать во всех случаях (например, если вы выполняете вызовы, далеко приковали, что вам нужно передавать данные как переменные, а не параметры). Такая же проблема с глобальными переменными. JavaScript просто не имеет возможности «ждать».
Хотя у меня была аналогичная проблема и с jQuery, у меня получилось решение типа MacGyver, которое дает вам тонны контроля при выполнении javascript-функций. Я просто разместил его здесь в качестве ответа на свой вопрос (но я это ответ, который не проверил - обратите внимание на мое имя пользователя Эмиля): How to get a variable returned across multiple functions - Javascript/jQuery
Вот еще один метод loading jQuery asynchronously, который не зависит от другого сценария.
- 1. wait async function ends
- 2. Javascript wait() function
- 3. Javascript async function composition
- 4. UITextField return Number to function
- 5. return value to break function
- 6. JavaScript async/wait и do/while loop
- 7. javascript function return data
- 8. Javascript return enclosing function
- 9. Javascript function return null
- 10. javascript function return issue
- 11. javascript function return undefined
- 12. Javascript async return
- 13. wait to function завершает вызов других функций
- 14. async function in sync function dont return value
- 15. Пообещает. Then (async()) по сравнению с .then (function() {return async()})
- 16. PHP return return function function
- 17. Javascript: function in function and return
- 18. async/wait mocking
- 19. Javascript for loop, wait for function callback
- 20. Javascript function return array undefined
- 21. Async/wait task issue
- 22. Dart async/wait encapsulation
- 23. Async Task wait
- 24. Bind model to function call return value
- 25. excel vba function to return recordset
- 26. wait() function in c
- 27. javascript async/wait в общем цикле
- 28. MVVM async wait pattern
- 29. Комбинация функции async + wait + setTimeout
- 30. Delay Return to Wait for Asynchronous Functions (событие beforeunload)
просто обнимать асинхронность. не пытайтесь бороться с ним. – Anurag