Возвращаемое значение обещания - PullRequest
0 голосов
/ 01 июня 2018

Я пропустил некоторые концепции обещаний (в ТС).Я не понимаю, почему следующий код не выводит на консоль параметр data, который равен 222.

const p : Promise<number> = 
    new Promise<number>(()=>{console.log(1); return 222;})
    .then((data)=>{
    console.log(data)
    return 43;
});

Это только printng 1 вместо 1 и затем 222.Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 июня 2018

Обещание не возвращает значение, оно разрешается со значением:

new Promise<number>((resolve, reject) => {
    console.log(1);
    resolve(2);
}).then((data) => console.log(data));
0 голосов
/ 01 июня 2018

Обещание является асинхронной операцией,

const p : Promise<number> = 
    new Promise<number>((resolve, reject)=>{
      //do some operations here, and the desired output is ready, say result = 5;
      resolve(result)
      //or if you hit an error you can get the error obj, e and
      reject(e)
    });

Вы можете выполнить вызов обещания сейчас, и результат после выполнения будет доступен в .then

p()
.then((resolvedResult:number)=>console.log(resolvedResult),(rejectedError)=>console.log(rejectedError))
0 голосов
/ 01 июня 2018

Вам необходимо выполнить обещание:

const p : Promise<number> = 
new Promise<number>((resolve)=>{
    console.log(1); 
    resolve(222);}
)
.then(
    (data) =>{
    console.log(data);
    return 43;
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...