Следующий пример ошибки предоставления обещания JavaScript

#javascript #ecmascript-6 #es6-promise

#javascript #ecmascript-6 #es6-обещание

Вопрос:

Я создаю обещание, которое будет принимать входные данные, а затем возвращать к нему ( 3). Затем я хочу распечатать результат. Почему я получаю ошибку?

 var prom = new Promise((item) => item 3);

prom(5).then(console.log(result)); 

Я новичок в обещаниях. Пожалуйста, помогите.

Ответ №1:

Прежде всего, вы не предоставляете обещание с аргументами. Если вы хотите создать обещание с возвращаемым значением, вам необходимо создать функцию, которая возвращает обещание.

Во-вторых, then принимает функцию и предоставляет ей аргумент результата, который вы можете использовать в своем console.log .

 // var prom = new Promise((item) => item 3);
const prom = item => new Promise((resolve, reject) => resolve(item   3));

// prom(5).then(console.log(result));
prom(5).then(result => console.log(result)); 

Комментарии:

1. Pl, также добавьте исходный код, где без переноса функций вы исправили и получили ответ. Это также было полезно.

2. вы имеете в виду это?

3. Да, но сделайте 2 отдельных примера, не просто добавляйте в качестве комментария. Пусть оба работают. Пусть пользователь решает, чему он хочет следовать.

4. Это хорошая идея, но в этом случае ваш код выдавал ошибку, поэтому объединение его с другим кодом не сработает, вы увидите только ошибку, а мой код даже не будет выполнен.

Ответ №2:

Вы не предоставляете значение обещанию таким образом.

Единственное, что вы получаете в своем обещании, это функция разрешения и отклонения, а не значение, которое вы передали там. Это не функция, это объект.

Вместо этого вы можете обернуть его в функцию, подобную этой:

 function prom(item) {
    return new Promise((resolve, reject) => resolve(item 3));
}

prom(5).then(result => console.log(result));