首页 > 解决方案 > 在 Node.js 中使用控制台提示库时出现回调()问题

问题描述

每次我使用库时,无论库是什么,允许我将数据输入控制台,都会出现不允许我正确使用回调函数的错误。问题是回调在没有数据输入部分的情况下工作,但是当我使用它时,它在函数之后启动,该函数在主函数之后启动。

const {prompt} = require('enquirer');

function second(error) {
    if (!error) console.log('I\'m third') //but in reality second
}

function main(callback) {
    console.log('I\'m first')
    const response = prompt({
        type: 'input',
        name: 'title',
        message: 'Please write title'
    })
    console.log(response); //must be second but in reality third
    callback()
}

main(second);

这是控制台输出:

I'm first
Promise { <pending> }
I'm third
✔ Please write title · 1

我认为这是我的错,因为我是回调和 Node.js 的新手。如果你能帮助我,我会非常高兴。

标签: javascriptnode.jscallbacklibraries

解决方案


const {prompt} = require('enquirer');

function second(error) {
    if (!error) console.log('I\'m third') 
}

async function main(callback) {
    console.log('I\'m first')
    const response = await prompt({
        type: 'input',
        name: 'title',
        message: 'Please write title'
    })
    console.log(response); 
    callback()
}

main(second);

推荐阅读