Итак, я знаю, что этот вопрос часто задают, но я пытаюсь получить переменную, созданную в обещании. Примеры, которые я видел здесь, включают вызов .then и использование там данных, однако то, что я пытаюсь сделать, включает в себя асинхронную функцию, которую я не могу использовать в блоке .then.
Вот мой код. Я использую Asana API, чтобы вызвать списки задач, которые должны быть выполнены. Это успешно регистрирует это. Но я хочу сохранить значение списка из последнего блока как переменную, которую я могу использовать в другом месте.
const asana = require('asana');
const client = asana.Client.create().useAccessToken("xxx");
client.users.me()
.then(user => {
const userId = user.id;
// The user's "default" workspace is the first one in the list, though
// any user can have multiple workspaces so you can't always assume this
// is the one you want to work with.
const workspaceId = user.workspaces[0].id;
return client.tasks.findAll({
assignee: userId,
workspace: workspaceId,
completed_since: 'now',
opt_fields: 'id,name,assignee_status,completed'
});
})
.then(response => {
// There may be more pages of data, we could stream or return a promise
// to request those here - for now, let's just return the first page
// of items.
return response.data;
})
.filter(task => {
return task.assignee_status === 'today' ||
task.assignee_status === 'new';
})
.then(list => {
console.log (util.inspect(list, {
colors: true,
depth: null
}));
})
.catch(e => {
console.log(e);
});