Node.js Wit.ai承诺返回函数

时间:2017-01-17 08:17:02

标签: javascript node.js wit.ai wit-ai

我的承诺返回未定义的值。我不确定如何在node.js页面中正确执行此功能。你可以帮我解决这个问题,以便在我的上下文中以完美的方式返回地理编码后的所有值!谢谢你

merge_location({
    entities,
    context,
    message,
    sessionId
}) {
    return new Promise(function(resolve, reject) {
        var location = firstEntityValue(entities, 'location');
        if (location) {
            geocoder.geocode(location).then(function(res) {
                console.log(res);
                context.location = location;
                context.lat = res[0].latitude;
                context.lng = res[0].longitude;
                delete context.MissingLocation;
            }).catch(function(err) {
                context.MissingLocation = true;
                delete context.location;
                delete context.lat;
                delete context.lng;
                console.log("Il n'y a pas de ville ");
            });
        } else {
            context.MissingLocation = true;
            delete context.location;
            delete context.lat;
            delete context.lng;
            console.log("Il n'y a pas de ville ");
        }
        console.log("I want to return this" + context.location + ' ' + context.lat + ' ' + context.lng);
        return resolve(context);
    });
}

1 个答案:

答案 0 :(得分:0)

您不需要说return resolve(...。相反,您只需致电resolve(...

例如:

function myPromiseFunction(x) {
    return new Promise(function (resolve, reject) {
        // Do your lengthy processing with x here

        if (everyThingLooksGood) {
            resolve(thingYouWantToReturn);
        } else {
            reject("ERROR: Things didn't go according to plan!");
        }
    });
}