Ajax Promise解析后如何返回值到函数?

时间:2019-06-19 23:01:57

标签: javascript ajax promise

我很难理解使用回调将已解决的Promise的值返回给函数的方法。我正在开发一个国际象棋应用程序,在该应用程序中,我使用ajax将板数据发送到Flask后端,进行一些计算,然后将结果发送回前端,以用于客户端script.js文件中,以进行进一步的决策逻辑。我可以将数据发送到Flask,并获得响应,但是我在将ajax响应返回给函数的逻辑上遇到麻烦。

// ajax function to POST data to server, and get response back
var evaluateBoard = function (game) {
    return $.ajax({
        type: "POST",
        url: "/api/predict",
        data: JSON.stringify({'turn':game.turn(), 'board':game.board()}),
        dataType: 'json',
        xhrFields: {
            withCredentials: true
        },
        crossDomain: true,
        contentType: 'application/json; charset=utf-8',
        error: function(xhr, status, error){
            var errorMessage = xhr.status + ': ' + xhr.statusText
            console.log(errorMessage)
        }
    }).done(function(res) {
        var score = res.score
        return score
    });
};



// function that calls ajax function and needs to return value of resolved promise
var minimax = function (depth, game, alpha, beta, isMaximisingPlayer) {
    positionCount++;
    if (depth === 0) { 
        var score = evaluateBoard(game)

        const result = score.then(function(data) {
            return -data['score']
        })

        console.log(result)
        return result
    }
// { unrelated code . . . }

minimax()应该返回一个介于0和1之间的值result,但我得到的是承诺。我可以访问.then()中的值。函数,但不将其返回给minimax()。我的期望是,一旦兑现承诺,就可以从data['score']返回值.then()

0 个答案:

没有答案