Вызов асинхронной функции - PullRequest
0 голосов
/ 05 июля 2018

У меня есть модуль следующим образом:

async.js

module.exports = async function (){
    await func()
}

index.js

var asyncFun = require('async') 

Как мне запустить его как asyncFun() в index.js?

Я знаю, как запускать эти функции в качестве промежуточного программного обеспечения, но я хочу запустить его напрямую. Что касается его запуска, мне нужно вызвать await, а await нельзя вызвать, не находясь внутри async.

Ответы [ 3 ]

0 голосов
/ 05 июля 2018

попробуйте добавить инструкцию возврата в async.js

module.exports = async function (){
    return await func()
}

и запускайте asyncFun () напрямую

0 голосов
/ 11 июля 2018

Я решил этот вопрос, сделав корневую функцию асинхронной и обернув всю асинхронную функцию нормальной функцией, а асинхронная функция возвращает обещание. (используя вызов).

Пример:

Предположим, что это основная функция, где вы пишете весь код.

// create it as a async function
module.exports = async function main(){
    // Do something all your stuff
}

Вызовите свою основную функцию из другого места, где

require('./main)()
0 голосов
/ 05 июля 2018

Вы можете использовать это:

(async () => {
    await asyncFun();
})();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...