Возвращение обещания от функции, которая получает ответ от фонового JS расширения chrome - PullRequest
1 голос
/ 06 июня 2019

Так что после выпуска CORB расширения chrome я перенес вызовы API в фоновый скрипт и использовал обратный вызов из фонового скрипта для отправки ответа JSON.

Итак, у меня есть сомнения относительно ответа, который я получаю от обратного вызова, я хочу, чтобы он его возвратил.

async function request (path, apiToken, options) {
  chrome.runtime.sendMessage({type: "request", path:path, apiToken:apiToken, options:options}, (all) => {
    return Promise.resolve(all.json )
  })
}

Я вызываю запрос => он уходит в фон => фон возвращает ответ => тогда функция запроса должна вернуть обещание. Я застрял на последнем шаге, так как я не могу вернуть его из-за обратного вызова,

1 Ответ

0 голосов
/ 06 июня 2019

Верните новое обещание, разрешите его в вашем sendMessage обратном вызове

async function request (path, apiToken, options) {
  return new Promise(function(resolve, reject) {
      chrome.runtime.sendMessage({type: "request", path:path, apiToken:apiToken, options:options}, (all) => {
        resolve(all.json)
      })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...