Код узла js, в котором я хочу узнать, как решать асинхронный код - PullRequest
0 голосов
/ 05 ноября 2019
setTimeout(()=>{
        console.log('time out')
    },3000)
}

go();
console.log('app')

Это асинхронный код, я хочу напечатать приложение после задержки, но, как мы знаем, сначала печатается «приложение», а затем «время ожидания».

Ответы [ 2 ]

5 голосов
/ 05 ноября 2019

Вы можете справиться с асинхронной задачей двумя способами: -

  1. С помощью Promise, а затем с методом
  2. С методом асинхронной / ожидания

1st Way: -

function promiseFunction() {
    return new Promise((resolve, reject) => {
        setTimeout(()=>{
            console.log('completed task and resolve');
            resolve()
        },3000)
    })
}
promiseFunction().then(() => {
    console.log('all task completed with your message (app)');
})

2-й способ: -

asyncFunction();
function promiseFunction() {
    return new Promise((resolve, reject) => {
        setTimeout(()=>{
            console.log('completed task and resolve');
            resolve()
        },3000)
    })
}
async function asyncFunction() {
  await promiseFunction();
  console.log('all task completed with your message (app)');
}

PS. Убедитесь, что ключевое слово await должно быть в асинхронной функции.

1 голос
/ 05 ноября 2019

вы можете обрабатывать асинхронный код, используя обещание

  function go() {
    return new Promise((resolve, reject) => {
        setTimeout(()=>{
            console.log('time out');
            resolve()
        },3000)
    })
}

go().then(() => {
    console.log('app')
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...