Вот функция, которую я бы хотел вызвать для ее возвращаемого значения, и в этой функции я хотел бы использовать асинхронный вызов, который установил бы флаг для работы с последним:Ожидание асинхронного обратного вызова, затем возврат
function getSomething() {
var isOk;
myAsyncFunction(function(data) {
if (data === 'foo') {
isOk = true;
}
});
//...
if (isOk) {
return true;
}
}
Я хотел бы использовать getSomething(), как это:
if (getSomething()) {...}
Я знаю, что он не будет приостанавливать выполнение этой функции ждать мой асинхронный вызов, чтобы закончить. Я также знаю, что возвращаемое истинное утверждение не должно быть в обратном вызове функции async. Но как я могу ждать обратного вызова функции async? Должен ли я преобразовать вызов getSomething() в обещание или есть другой способ? И как бы выглядел бы вызов getSomething(), если я буду использовать обещания? Заранее спасибо!
'myAsyncFunction' должен вернуть обещание, вы должны верните это обещание с 'getSomething'. –
* «Но как я могу ждать обратного вызова функции асинхронной функции?» * Вы не можете, это невозможно. Единственный вариант - использовать обратные вызовы, как напрямую, так и на обещающих объектах. –