обещания не могут прочитать свойство тогда неопределенного - PullRequest
0 голосов
/ 05 октября 2018

Я создал пример обещания, и все совпадает, насколько я могу судить, что все переменные объявлены, и все квадратные скобки закрыты, но я получаю сообщение, что ошибка не может вернуть неопределенное значение.Кто-нибудь может предложить объяснение этому?Спасибо за вашу помощь.

function mySandwich(data) {
  new Promise(function(resolve, reject) {
    if (data > 5) {
      resolve(data);
    } else {
      reject('no data');
    }
  });
}

mySandwich(5)
  .then(function(data) {
    console.log('promise 1 num is' + data);
  })
  .catch(function(err) {
    console.log(err);
  });

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

mySandwich - это функция, которая ничего не возвращает.Согласно вашему коду

mySandwich(5)
 .then(function (data) {
  console.log("promise 1 num is" + data);
})
.catch(function (err) {
console.log(err);
});

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

function mySandwich(data) {
   return new Promise(function (resolve, reject) {
    if (data > 5) {
        resolve(data);
    } else {
        reject("no data");
    }
  });
}
0 голосов
/ 05 октября 2018

Вам необходимо вернуть Promise из mySandwich

function mySandwich(data) {
    return new Promise(function (resolve, reject) {
        if (data > 5) {
            resolve(data);
        } else {
            reject("no data");
        }
    });
}

mySandwich(5)
    .then(function (data) {
        console.log("promise 1 num is" + data);
    })
    .catch(function (err) {
        console.log(err);
    });

function mySandwich(data) {
  return new Promise(function (resolve, reject) {
    if (data > 5) {
      resolve(data);
    } else {
      reject("no data");
    }
  });
}

mySandwich(5)
  .then(function (data) {
    console.log("promise 1 num is" + data);
  })
  .catch(function (err) {
    console.log(err);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...