带有两个函数的异步/等待JavaScript

带有两个函数的异步/等待JavaScript,javascript,asynchronous,async-await,Javascript,Asynchronous,Async Await,我是JavaScript新手,不知道如何处理异步性。我已经阅读和修补了好几个小时了,我想不出来 我有两个功能,当我在控制台中独立运行它们时,它们工作得很好。。。。但是,当我从JS文件中顺序运行它们时,第二个函数在第一个函数输出之前运行。我已经阅读了async/await for javascript的所有内容,但我不知道在第二个函数开始运行之前,我需要做什么才能让第一个函数完全运行。而且,网上的例子对我来说毫无意义。如果你能帮助我,那就太好了 第一个函数只是掷六个骰子。第二个函数获取该函数的输出

我是JavaScript新手,不知道如何处理异步性。我已经阅读和修补了好几个小时了,我想不出来

我有两个功能,当我在控制台中独立运行它们时,它们工作得很好。。。。但是,当我从JS文件中顺序运行它们时,第二个函数在第一个函数输出之前运行。我已经阅读了async/await for javascript的所有内容,但我不知道在第二个函数开始运行之前,我需要做什么才能让第一个函数完全运行。而且,网上的例子对我来说毫无意义。如果你能帮助我,那就太好了

第一个函数只是掷六个骰子。第二个函数获取该函数的输出,并在屏幕上绘制辊,供用户查看

如何让它们同步运行(先运行函数1,后运行函数2)

功能骰子卷(已购买){
结果=[]
对于(var i=0;i
这里没有异步,您不需要使用
wait

您需要将调用
diceRoll()
的结果分配给
DiceResults
变量

您还应该在函数中声明局部变量

function diceRoll(purchased) {
    var DiceResults = []

    for (var i = 0; i < purchased; i++) {
        DiceResults.push(Math.floor(Math.random() * 6) + 1);
    }
    return DiceResults
}

function DiceRolling(DiceResults) {
    for (var i in DiceResults) {
        Q = (DiceResults[i])
        var x = document.createElement("IMG");
        x.setAttribute("src", Q + ".png");
        x.setAttribute("width", "304");
        x.setAttribute("height", "228");
        document.body.appendChild(x);
    }
}

DiceResults = diceRoll(5)
DiceRolling(DiceResults)
功能骰子卷(已购买){
var DiceResults=[]
对于(var i=0;i
您对async/await的用途感到困惑。这用于处理对外部资源的异步请求。在您的示例中,这是不必要的,因为一切都是在内部发生的。将您的示例更改为:

功能骰子卷(已购买){
结果=[]
对于(var i=0;i掷骰子(结果)
掷骰子
不是异步的,您不需要使用
await
。使用
await
调用的函数必须返回承诺,或者使用
异步函数定义(这使它自动返回承诺)。假设您实际上不需要
wait
/
async
,只想调用函数:删除
diceRoll(5)
,将
DiceRolling(dicerresults)
替换为
DiceRolling()
,在两个位置替换
wait diceRoll()带有
DiceResults=diceRoll()。第二个函数在第一个函数输出之前运行。不,不是。所以,我看到了我问题的错误。。。。这不是编码区域的问题。我还有另外两个没有包含的函数,它们应该在这个函数运行之前完成运行。
function diceRoll(purchased) {
    var DiceResults = []

    for (var i = 0; i < purchased; i++) {
        DiceResults.push(Math.floor(Math.random() * 6) + 1);
    }
    return DiceResults
}

function DiceRolling(DiceResults) {
    for (var i in DiceResults) {
        Q = (DiceResults[i])
        var x = document.createElement("IMG");
        x.setAttribute("src", Q + ".png");
        x.setAttribute("width", "304");
        x.setAttribute("height", "228");
        document.body.appendChild(x);
    }
}

DiceResults = diceRoll(5)
DiceRolling(DiceResults)