как дождаться обещания в функции, прежде чем перейти к следующей строке

#javascript #reactjs

Вопрос:

Как подождать getstatus(statustable).then(function(response) , что нужно сделать, прежде чем перейти туда console.log("old"); , где getstatus является асинхронной функцией, вернет новое обещание

     var count = "old";
    
     getstatus(statustable).then(function(response){
        console.log("changeing count")
        count = "new";
        console.log(count)

    });
    
    console.log("old");
 

Комментарии:

1. использовать async-await

2. Можете ли вы объяснить, как это связано с реакцией, потому что, возможно, есть полезный ответ, который включает состояние, но ваш код его не показывает.

Ответ №1:

Положите console.log("old"); внутрь .then . Все, что вы хотите выполнить наверняка после обещания, вам придется поместить в ту .then или иную .then цепочку после него.

Если вы хотите написать его последовательно, вам придется использовать async/await.

Ответ №2:

Вы можете подождать на GetStatus

     var count = "old";
    
    await getstatus(statustable).then(function(response){
        console.log("changeing count")
        count = "new";
        console.log(count)

    });
    
    console.log("old");
 

Вся функция, частью которой это является, должна быть асинхронной.
Если вы не можете изменить функцию на асинхронную, вам нужно будет сделать так, как предложил @Tushar Shahi, и поместить последний журнал консоли в другой, как показано ниже

     var count = "old";
    
    getstatus(statustable).then(function(response){
        console.log("changeing count")
        count = "new";
        console.log(count)

    }).then (() => {
        console.log("old");
    });