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();