Что такое everyauth promises?

Я не понимаю, что такое everyauth promises.

Я вижу, что мне нужно вернуть объект обещания или пользователя, но что такое обещание everyauth?

Ответы

Ответ 1

Это полезно, когда у вас есть функция, которая выполняет аутентификацию, но которая делает это асинхронно. Вы не можете напрямую возвращать пользовательскую информацию из функции (потому что вам нужно дождаться, когда обратный вызов будет запущен), поэтому вместо этого вы вернете обещание. Это специальный объект, который выступает в качестве "заполнителя" для того, что в конечном итоге будет заполнено информацией пользователя, когда асинхронный запрос будет завершен.

Пример из документации:

function (session, accessToken, extra, oauthUser) {
  var promise = this.Promise();
  asyncFindUser( function (err, user) {
    if (err) return promise.fail(err);
    promise.fulfill(user);
  });
  return promise;
}

Это означает, что вызывающий контекст может продолжать выполнять работу вплоть до фактической потребности в информации пользователя (и все это время, пока асинхронный запрос завершается); ему придется подождать на этом более позднем этапе, если информация пользователя еще не была доступна. Вы можете подумать об этом как о конкретном случае создания потоков и присоединения.

" Promise" - это общий термин, который охватывает такую ​​функциональность во всех языках и контекстах:

В информатике будущее, обещание и задержка относятся к конструкциям, используемым для синхронизации на некоторых параллельных языках программирования. Они описывают объект, который действует как прокси-сервер для результата, который изначально неизвестен, обычно потому, что вычисление его значения еще не завершено.