Azure Devops Storage — dataService не определен

Я следую различным примерам расширений devepos на веб-сайте Microsoft, но пример для создания и редактирования документов, похоже, у меня не работает (https://learn.microsoft.com/en-us/azure /devops/extend/develop/data-storage?view=azure-devops)

window.requirejs.config({
    enforceDefine: true,
    paths: {
        'SDK': './lib/SDK.min',
    }
});

window.requirejs(['SDK'], function (SDK) {
    if (typeof SDK !== 'undefined') {
        console.info("SDK is defined. Trying to initialize...");
        SDK.init();
        SDK.ready().then(() => {
            console.info("SDK is ready");
            // Get data service
            SDK.getService(SDK.getContributionId()).then(function (dataService) {
                // Prepare document first
                var newDoc = {
                    fullScreen: false,
                    screenWidth: 500
                };

                dataService.createDocument("MyCollection", newDoc).then(function (doc) {
                    // Even if no ID was passed to createDocument, one gets generated
                    console.info("Doc id: " + doc.id);
                });
            });

        });
    } else {
        console.info('SDK is not defined');
    }
});

После вызова SDK.getService dataService всегда не определен. Насколько я могу судить, SDK инициализировался правильно, поскольку многие другие функции SDK работают должным образом и идентификатор вклада верен. Но я не хочу исключать это как причину, поскольку у меня было много проблем с избавлением от ошибки «Ни на одном канале для сообщения не найден обработчик».

Любая помощь или предложения очень ценятся.

Привет Цзыян, спасибо за ваш комментарий. Я могу использовать API для получения документов, но, если я не ошибаюсь, API не может создавать или записывать документы — это должно быть сделано с помощью SDK. Код, который я использовал выше, является прямой копией примера из официальной документации, поэтому я могу только предположить, что упускаю что-то довольно очевидное, если только с примером на веб-сайте Microsoft что-то не так.

cob 15.04.2024 08:17

Проверяя ранее опубликованный общедоступный репозиторий, документ обновляется с помощью updateDocumentByName(). Я пытался использовать образец из официального документа для создания расширения, но это не удалось из-за некоторых ошибок, таких как ReferenceError: define is not defined. Я заметил, что у некоторых других была похожая проблема с dataService. Например, это и это.

Ziyang Liu-MSFT 15.04.2024 09:35

Привет, Зиянг, репозиторий, на который ссылается Мааша по предоставленной вами ссылке, похоже, работает. github.com/MicrosoftDocs/azure-devops-docs/issues/13803 Спасибо!

cob 16.04.2024 07:33

Привет @cob, приятно знать, что это работает для тебя. Чтобы помочь другим, у кого может возникнуть аналогичный вопрос, я публикую ответ ниже, чтобы сделать его более понятным.

Ziyang Liu-MSFT 16.04.2024 08:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я заметил, что у некоторых других была похожая проблема с dataService. Есть репозиторий , который, похоже, работает. Надеюсь, это будет полезно для вас.

    private async initializeState(): Promise<void> {
        await SDK.ready();
        const accessToken = await SDK.getAccessToken();
        const extDataService = await SDK.getService<IExtensionDataService>(CommonServiceIds.ExtensionDataService);
        this._dataManager = await extDataService.getExtensionDataManager(SDK.getExtensionContext().id, accessToken);

        this._dataManager.getValue<string>("test-id").then((data) => {
            this.setState({
                dataText: data,
                persistedText: data,
                ready: true
            });
        }, () => {
            this.setState({
                dataText: "",
                ready: true
            });
        });
    }

Другие вопросы по теме

Похожие вопросы

Запускайте конвейер только после завершения слияния запроса на извлечение
Задача Azure DevOps «Развертывание функций Azure» не создает параметр приложения с указанным значением — устранение проблемы \r\n
При запуске службы Docker происходит сбой нестандартного конвейера Azure
Копирование файлов с одной виртуальной машины на другую виртуальную машину с помощью конвейера Azure DevOps
Создание запроса в Microsoft ADO для поиска тестовых примеров по дате выполнения
Тесты драматурга выполняются медленнее и игнорируют глобальное время ожидания в Azure DevOps
Невозможно развернуть группу ресурсов Azure из Devops с помощью шаблона ARM и Powershell
Как использовать «git show» для получения одного файла, но указать URL-адрес удаленного репозитория для Azure DevOps?
Как сделать так, чтобы этап в Azure Pipelines запускался только тогда, когда запрос на включение объединен, а не создан?
Фатальный: не удалось прочитать пароль для «https://[email protected]/org/Project/_git/Repo»: запросы терминала отключены