2017-01-08 4 views
-2
return Promise.resolve(member + 2).then((result) => {return result + 2}); 

Оригинальное обещание было разрешено, then создано новое обещание? Итак, теперь это второе обещание имеет значение result + 2, но все еще ожидает? Как мне его решить?Решение обещания, созданного тогда?

+0

Второй «то»? Я вижу только один «тогда» ... – LarsH

+0

@LarsH, да, я имел в виду этот. – user7361276

+0

Обещание, возвращенное к тому времени **, было разрешено ... если значение, возвращаемое тогда, является обещанием, тогда обещание, возвращенное. Then "принимает" возвращенное обещание –

ответ

1

Посылы всегда оцениваются асинхронно, то есть невозможно «разрешить» обещание обратно в синхронную среду. Единственный способ получить доступ к значению Promise - это вызов then или catch.

Promise.resolve(10) 
 
     .then(result => result + 2) 
 
     .then(result => console.log(result));

0
var x =Promise.resolve(10 + 2).then((result) => {return result+2}); 
    x.then((value)=>console.log(value)); 

// 14 
0

Вы должны позвонить, то(), чтобы получить новый результат:

let promise = Promise.resolve(17).then(res => res + 2000); 

promise.then(newRes => { 
    console.log("newRes",newRes) // 2017 
}) 

GOODLUCK!

Смежные вопросы