JavaScript:如何使用异步方法?

JavaScript:如何使用异步方法?,javascript,node.js,asynchronous,async-await,Javascript,Node.js,Asynchronous,Async Await,我想得到结果: 1 2 3 怎么做 我尝试了几种实现选项,但它们都不能产生我想要的结果 如果使用: var aaa = { line: function () { console.log(1) aaa.RF(); console.log(3) }, RF: async function () { await jsonfile.readFile(file, function(err, obj) {

我想得到结果:

1
2
3
怎么做

我尝试了几种实现选项,但它们都不能产生我想要的结果

如果使用:

var aaa = {
    line: function () {
        console.log(1)
        aaa.RF();
        console.log(3)
    },
    RF: async function () {
        await jsonfile.readFile(file, function(err, obj) {
            console.log(2)
        })
    }
}
aaa.line()
结果:

1
3
2
1
3
2
如果

结果错误

如果

结果:

1
3
2
1
3
2

您需要等待aaa.RF()。没有添加wait,它仍然将
async
函数视为async,并继续执行

var aaa = {
    line: async function () {
        console.log(1)
        await aaa.RF();
        console.log(3)
    },
    RF: async function () {
        await jsonfile.readFile(file, function(err, obj) {
            console.log(2)
        })
    }
}
aaa.line()

您需要等待aaa.RF()。没有添加wait,它仍然将
async
函数视为async,并继续执行

var aaa = {
    line: async function () {
        console.log(1)
        await aaa.RF();
        console.log(3)
    },
    RF: async function () {
        await jsonfile.readFile(file, function(err, obj) {
            console.log(2)
        })
    }
}
aaa.line()

不,结果1,3,2Try
console.log(等待新的承诺(r=>jsonfile.readFile(file,()=>r(2)))
@VINET你能用最新的代码更新你的问题吗?@samanime,请告诉我如何用这个对象完成这个任务,我会更新这个问题。我不确定你的意思。。。我给了你修复第一个示例的确切代码。不,结果1,3,2Try
console.log(等待新的承诺(r=>jsonfile.readFile(file,()=>r(2)))
@VINET你能用最新的代码更新你的问题吗?@samanime,请告诉我如何用这个对象完成这个任务,我会更新这个问题。我不确定你的意思。。。我为您提供了修复第一个示例的确切代码。