Функция Table.read () дает [Object Promise], как превратить это в массив?Cordova и служба мобильных приложений Microsoft Azure - PullRequest
0 голосов
/ 28 декабря 2018

Итак, я создаю систему входа в систему для моего мобильного приложения, используя инструменты Visual Studio для простых таблиц мобильного приложения Cordova и Azure.Моя проблема: если я вызываю функцию table.read ():

  var client = new WindowsAzure.MobileServiceClient('https://passmateapp.azurewebsites.net');


var table = client.getTable('todoitem');

            var test = table.read();
console.log(test);

Вот что я получаю: [Обещание объекта] Я видел учебники и руководства в Интернете о том, как обработать это в строку или массив, но я не сделалдействительно понимаю их.Итак, мой вопрос: может ли кто-нибудь объяснить мне, как преобразовать это обещание в массив, который я могу использовать для своей системы входа в систему?Большое спасибо!

В ответ на ответ:

Содержание обещания

Если я попытаюсь открыть раскрывающийся список,случается: сообщение об ошибке при открытии выпадающего

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Promise работает асинхронно, это означает, что он не блокирует выполнение следующего кода, поэтому console.log (test) под вызовом обещания по-прежнему будет неопределенным, поскольку для получения ответа требуется время.

Iпросмотрел документацию для таблиц WindowsAzure , и я хочу, чтобы вы попробовали это:

var client = new WindowsAzure.MobileServiceClient('https://passmateapp.azurewebsites.net');
var table = client.getTable('todoitem');
let test;


function success(results) {
    test = results;
    // do you see correct data here?
    console.log('results:', test);
    return test;
 }

 function failure(error) {
     throw new Error('Error loading data: ', error);
 }

async function setTestValue() {
    if (!test) {
        test = await table.read().then(success, failure);
    }
    console.log('test: ', test);
}
setTestValue();
0 голосов
/ 28 декабря 2018

Вам нужно дождаться разрешения Promise.Используйте метод then для объекта Promise, который принимает обратный вызов для получения данных.

var client = new WindowsAzure.MobileServiceClient('https://passmateapp.azurewebsites.net');
var table = client.getTable('todoitem');
table.read().then(function(data) {console.log(data)});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...