Не удается прочитать свойство 'длина' неопределенной ошибки в среде бота - PullRequest
1 голос
/ 06 апреля 2019

Я получаю данные из axios запроса на получение и перемещаю их в массив xyz. Но когда я посылаю xyz на step.prompt, он выдает эту ошибку:

"[onTurnError]: TypeError: Невозможно прочитать свойство 'length' из неопределенный "

Когда я печатаю xyz в журнале, он содержит нужные мне данные.

async someFunction(step){
    var xyz = [];
    try {
        const response = await axios.get(`url`);

        for (var i = 0; i < response.data.length; i++) {
            xyz[i] = response.data[i].xzyElement;
        }
    } catch (error) {
        console.log(`error ${error}`);
    }
    return await step.prompt(PROMPT, 'Choose any one.', xyz);
}

Я хочу отправить элементы в xyz в качестве приглашения для пользователя.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2019
for (var i = 0; i < response.data.length; i++) {
    xyz[i] = `${response.data[i].xzyElement}`;
}

Попробуйте добавить любое значение элемента в массив в вышеуказанном формате.

Тогда TypeError не произойдет.

0 голосов
/ 08 апреля 2019

Для использования подсказки для бота вы можете использовать что-то вроде ниже

Подсказка для образца проверки размера

return await stepContext.prompt(
        SIZE_RANGE_PROMPT, {
            prompt: 'How many people is the reservation for?',
            retryPrompt: 'How large is your party?',
            validations: { min: 3, max: 8 },
        });

Подсказка для выборки выбора местоположения

async promptForLocation(stepContext) {
    // Record the party size information in the current dialog state.
    stepContext.values.size = stepContext.result;

    // Prompt for location.
    return await stepContext.prompt(LOCATION_PROMPT, {
        prompt: 'Please choose a location.',
        retryPrompt: 'Sorry, please choose a location from the list.',
        choices: ['Redmond', 'Bellevue', 'Seattle'],
    });
}

Я предполагаю, что ваш второй параметр должен быть любым массивом / списком, вместо этого вы передаете строку с именем «Выберите любой», поэтому он дает «Не удается прочитать свойство« длина »неопределенного», поскольку он должен пытаться получить доступ первым иливторым элементом массива и переданным параметром является строка.

Второй параметр метода подсказки принимает объект параметров подсказки, который имеет следующие свойства.

enter image description here

Для справки, вы можете прочитать в деталях ниже документ

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-prompts?view=azure-bot-service-4.0&tabs=javascript

Надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...